1. 程式人生 > >簡單光照模型(Lambert 光照模型)

簡單光照模型(Lambert 光照模型)

環境光是對光照現像的最簡單抽象,因而侷限性很大。它僅能描述光線在空間中無方向並均勻散佈時的狀態。很多情況下,入射光是帶有方向的,比如典型的陽光。如果光照射到比較粗糙的物體表面,如粉筆,由於這些表面從各個方向等強度地反射光,因而從各個視角出發,物體表面呈現相同的亮度,所看到的物體表面某點的明暗程度不隨觀測者的位置變化的,這種等同地向各個方向散射的現象稱為光的漫反射(diffuse reflection)。簡單光照模型模擬物體表面對光的反射作用。光源被假定為點光源,其幾何形狀為一個點,向周圍所有方向上輻射等強度的光,在物體表面產生反射作用。就像這樣:

這裡寫圖片描述
Lambert光照模型是一種理想漫反射模型,各個方向一樣,它考慮的是ambient光和diffuse光對物體的綜合影響。漫反射光的強度近似地服從於Lambert定律,即漫反射光的光強僅與入射光的方向和反射點處表面法向夾角的餘弦成正比。下面是示例程式碼

Shader "Sbin/MyDiffuseFrag"
{


    SubShader
    {

        Pass
        {
            tags{"LightMode"="ForwardBase"}

            CGPROGRAM
            #pragma multi_compile_fwdbase
            #pragma vertex vert
            #pragma fragment frag
            #include  "unitycg.cginc"
            #include  "lighting.cginc"
struct v2f { float4 pos:POSITION; float3 normal:TEXCOORD0; float4 vertex:COLOR; }; v2f vert(appdata_base v) { v2f o; o.pos= mul(UNITY_MATRIX_MVP,v.vertex); o.normal
=v.normal; o.vertex=v.vertex; return o; } fixed4 frag(v2f IN):COLOR {//ambient color fixed col= UNITY_LIGHTMODEL_AMBIENT; //diffuse color // dot(n,l) float3 N=UnityObjectToWorldNormal(IN.normal); float3 L=normalize(WorldSpaceLightDir(IN.vertex)); float diffuseScale=saturate(dot(N,L)); col+=_LightColor0*diffuseScale; return col; } ENDCG } } }

這裡寫圖片描述

相關推薦

簡單光照模型Lambert 光照模型

環境光是對光照現像的最簡單抽象,因而侷限性很大。它僅能描述光線在空間中無方向並均勻散佈時的狀態。很多情況下,入射光是帶有方向的,比如典型的陽光。如果光照射到比較粗糙的物體表面,如粉筆,由於這些表面從各個方向等強度地反射光,因而從各個視角出發,物體表面呈現相同的亮

java內存模型Java Memory Model

ble watermark 了解 計算機 als stack lin 方法 兩個 內容導航: Java內存模型硬件存儲體系結構Java內存模型和硬件存儲體系之間的橋梁: 共享對象的可見性 競爭條件 Java內存模型規定了JVM怎樣與計算機存儲系統(RA

轉: 【Java並發編程】之十三:生產者—消費者模型含代碼

tool boolean 通知 阻塞 上一個 [] ble 否則 線程 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17249321 生產者消費者問題是線程模型中的經典問題:生產者和消費者在同一時間段

潛類別模型Latent Class Modeling

困難 pac 內部 示意圖 alt profile 判斷 img data 1.潛類別模型概述 潛在類別模型(Latent Class Model, LCM; Lazarsfeld & Henry, 1968)或潛在類別分析(Latent Class Analys

彈性盒模型伸縮布局

技術 baseline 不換行 它的 gray lock gin ack 設置高度 一、彈性盒模型(伸縮布局) flxible box 前言: 彈性布局,用來為盒子提供靈活性。就像是當把瀏覽器縮小的的時候,不會像float屬性會依然往下掉,靈活性不好。而且當布局盒裝模型

cesium導入3D模型obj轉gltf

出現 移動 mark 簡單 批處理 -s default 發現 pri cesium中支持載入3D模型,不過只支持gltf格式。gltf是khronos組織(起草OpenGL標準的那家)定義的一種交換格式,用於互聯網或移動設備上展現3d內容,充分支持opengl,webgl

對於單個模型長方體為例進行面投影時的消隱

return .com www ++ 類的繼承 投影 逆時針 所有 順序 作者:feiquan 出處:http://www.cnblogs.com/feiquan/ 版權聲明:本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給

關聯模型1:n

time mes 解決 可能 spa 關聯 tle 模式 this 關聯模型 (1對n) ThinkPHP5.0 的關聯采用了對象化的操作模式,你無需繼承不同的模型類 只是把關聯定義成一個方法,並且直接通過當前模型對象的屬性名獲取定義的關聯數據。 關聯定義:一個user

Coursera概率圖模型Probabilistic Graphical Models第一周編程作業分析

期望 and find 不同的 列表 mali 一周 模型 course Computing probability queries in a Bayesian network 計算貝葉斯網絡中的概率查詢 1.基礎因子操作 作業中因子的結構 phi =

Coursera概率圖模型Probabilistic Graphical Models第四周編程作業分析

map tel ica join 正常 最大化 expected 聯合 else Decision Making 作決策 這一周的內容在老版本的CS228課程中,是作為第六周的一個小節講的(老版本的CS229只有9周的課程),而在概率圖模型的教材裏邊對應的是第22章

先驗概率、後驗概率、似然函式與機器學習中概率模型如邏輯迴歸的關係理解

看了好多書籍和部落格,講先驗後驗、貝葉斯公式、兩大學派、概率模型、或是邏輯迴歸,講的一個比一個清楚 ,但是聯絡起來卻理解不能   基本概念如下   先驗概率:一個事件發生的概率 \[P(y)\] 後驗概率:一個事件在另一個事件發生條件下的條件概率 \[P(y|x

複雜網路上的意見動力學模型Human Opinion Dynamics

本文主要參考陳關榮等人編著的《複雜網路引論》(第二版)第十章的相關內容,整理了網路意見動力學(在傳播領域也稱輿情傳播)的一些主要模型。 意見動力學 人類意見動力學是人類行為動力學的一個分支,它是一門研究人類個體、群體、社團以及各種社會組織的態度、行為和互動的學科,關注他們的

模型核密度估計

1、核模型(Kernel function) 線上性模型中,多項式或三角函式等基函式與訓練樣本{(xi,yi)}毫不相關的。下面我們介紹一種模型,在基函式設計的時候會使用到輸入樣本{xi}。 note:是在基函式設計的時候使用到樣本,那麼訓練的是什麼?下面看公式。 核模型,是以

廣義線性模型Generalized Linear Models

看了一下斯坦福大學公開課:機器學習教程(吳恩達教授),記錄了一些筆記,寫出來以便以後有用到。筆記如有誤,還望告知。 本系列其它筆記: 線性迴歸(Linear Regression) 分類和邏輯迴歸(Classification and logistic regression) 廣義線性模

一文掌握常用的機器學習模型文末福利

AI 科技大本營按:本文節選自微軟亞洲研究院機器學習研究團隊劉鐵巖、陳薇、王太峰、高飛合著的《分散式機器學習:演算法、理論與實踐》一書。為了讓大家更好地理解分散式機器學習,AI科技大本營聯合華章科技特別邀請到了本書的作者之一——微軟亞洲研究院副院長劉鐵巖老師進行線上公開課分享,詳

Coursera概率圖模型Probabilistic Graphical Models第三週程式設計作業分析

Markov Networks for OCR 光學字元識別的馬爾科夫網路   說到光學字元識別(OCR),此前筆者首先想到的會是卷積神經網路,而單詞識別則會考慮使用遞迴神經網路。而本週的作業則基於馬爾科夫網路構建了一個較為基礎OCR系統,目的也主要是讓我們對馬爾科夫網路有個感

Thinkphp5基礎——06 模型隱藏欄位

為什麼要隱藏欄位? 在使用php提供介面服務的時候,有些情況下資料表裡的某些欄位並不適合返回給前端人員, 所以我們需要對其進行隱藏。 永久隱藏 模型類檔案 class Category extends Model { protected

Thinkphp5基礎——04 模型概念、CURD

ORM(Object Relation Mapping) 物件關係對映 用來把物件模型表示的物件,對映到基於S Q L 的關係模型資料庫結構中去。 這樣,我們在具體的操作實體物件的時候,就不需要再去和複雜的 SQ L 語句打交道,只需簡單的操作

文字分類之CNN模型TensorFlow實現版本

前言 最近在琢磨文字分類相關的深度學習模型,也研讀了以下三篇使用卷積神經網路CNN實現的文字分類論文: (1)《Convolutional Neural Networks for Sentence Classification》 (2)《Character-level Convo

從Storm到Flink:大資料處理的開源系統及程式設計模型文末福利

本文節選自CCF大資料教材系列叢書之《大資料處理》,本書由華中科技大學金海教授主編,包括大資料處理基礎技術、大資料處理程式設計與典型應用處理、大資料處理系統與優化三個方面。本教材以大資料處理程式設計為核心,從基礎、程式設計到優化等多個方面對大資料處理技術進行系統介紹,使得讀者能