我的shader學習之六

2021-09-17 03:32:02 字數 970 閱讀 4667

今天覆習一下基礎,寫個光照的讀書筆記

先寫個blinn-phong的光照模型

// upgrade note: replaced '_object2world' with 'unity_objecttoworld'

// upgrade note: replaced '_world2object' with 'unity_worldtoobject'

// upgrade note: replaced 'mul(unity_matrix_mvp,*)' with 'unityobjecttoclippos(*)'

shader "blinn-phong"

subshader

cgprogram

#pragma vertex vert //頂點著色器

#pragma fragment frag //片段著色器

#include "lighting.cginc"

fixed4 _diffuse;

fixed4 _specular;

float _gloss;

struct a2v ;

struct v2f ;

v2f vert(a2v v)

//逐畫素光照

fixed4 frag(v2f i) : sv_target

endcg

} }

fallback "specular"

}

blinn-phong實際上就是乙個經驗模型。這個裡面實際就是計算乙個高光和乙個漫反射。

都沒什麼特別的東西。

漫反射記得公式是光的顏色乘以漫反射顏色再乘以法線與光的方向的點乘

高光公式實際上有兩種,1是普通的phong模型。

這裡是blinn-phong它簡化了計算並且在一些情況下計算更快 就是

視角方向與光方向向量相加的然後點乘法線的gloss次冪再乘以光的顏色乘以高光顏色

Android學習之Shader渲染

android提供的shader類主要是渲染影象以及一些幾何圖形。shader有幾個直接子類 bitmapshader 主要用來渲染影象 lineargradient 用來進行線性渲染 radialgradient 用來進行環形渲染 sweepgradient 掃瞄漸變 圍繞乙個中心點掃瞄漸變就像電...

Shader學習的基礎知識(六)透明效果

在渲染的時候,渲染的順序是非常重要的,對於不透明物體我們不用不考慮是因為有的深度緩衝存在。在渲染時需要把片元中的值進行比較 如果開了深度測試 但一但關了嘗試測試就沒那麼簡單了。透明度測試 只要小於閾值就會被捨棄,完全不透明或完全透明。透明度混合 這種方法才能得到真正的透明效果,但是需要關掉深度測試,...

Shader之小白入門學習五

先實現乙個只有顏色屬性可調節的簡單材質效果,如下圖所示 模型可隨便找乙個,預設的幾何體也可以,在材質面板中只有乙個顏色屬性,當我們點開拾色器時,對應的模型也會自動發生變化。我們就用之前的myfirstshader來完善。在乙個shader中,可以有多個subshader以及乙個subshader中也...