其實並不難,
在《3d
遊戲與計算機圖形學方法》中,提供了一種由高度圖生成法向圖的方法。其思想是根據高度圖中的象素與其周圍象素的高度差,在切空間構造s
向量和t
向量,由sxt
得到法線向量。
設h(i,j)
表示在height map
上(i,j)
象素點的高度值,則在切線空間s
和t方向的切向量可以表示成:
s(i,j) = (1,0,h(i+1,j) - h(i-1,j) )
t(i,j) = (0,1,h(i,j+1) - h(i,j-1) )
normal(i,j) = s(i,j) x t(i,j)
h(i+1,j) – h(i-1,j)
為沿s方向的高度差,也就是s
方向的坡度,h(i,j+1) - h(i,j-1)
為沿t方向的高度差,也就是t
方向的坡度。當相鄰象素高度差為0
時,則算出的normal(i,j) = (0,0,1)
,表示法線垂直於平面,當有高度差時,法線就會分別朝s
方向或t
方向偏移。
用shader
來實現也很簡單,vs
和ps**如下,上邊左圖為heightmap,右圖為由下面shader生成的normalmap,這個方法生成的normalmap並不夠好,在rendermonkey中有乙個叫normalmapfilter的sample,會生成更高質理的normalmap,有興趣的朋友可以參考。
vs_output main(float4 pos: position)
float4 main(float2 texcoord: texcoord) : color
由PowerDesigner物理模型生成sql語句
tools execute commands edit run script 在開啟的視窗中 past 下面的 option explicit validationmode true interactivemode im batch dim mdl the current model get the...
如何由XSD自動生成XML和實體類
專案中有時候要用xml作為資料來源,因此需要定義xml檔案和相應的類,最佳方法是首先定義xsd,然後自動生成實體類,最後生成xml和填充資料 讀取xml資料來源的時候,首先用xsd驗證xml資料格式,然後自動讀入實體類使用。自動讀取xml資料到實體類 xmlserializer xs new xml...
由AE到生成模型VAE
vae variational autoencoder 變分自編碼器 1 ae vae 2 vae以及損失函式 學習不僅僅在於學習本身,還有創新,深度學習也一樣,不僅在於其強大的學習能力,更在於它的創新能力。所以,我們將模型分為兩類,一類是判別模型,一類是生成模型。所謂判別模型,通常是利用訓練樣本來...