MD5 – PolyBump + DetailBump

多謝華山兄和Secondage兄的解釋,終於明白了DOOM3中HeightMap的真正用處。原來HeightMap並不是用作ParallaxMapping的(實際上HeightMap中儲存的也並非真正的高度資訊),而是用於產生NormalMap的。DOOM3中的BumpMap一共有兩種,一種是PolyBump,它是由_local紋理得到的,儲存的是模型粗略的凸凹資訊;另一種是DetailBump,它是由HeightMap得到的,儲存的是模型的凸凹資訊細節。通過這兩種方式共同作用才能夠得到真正的效

GLSL學習筆記 – 6.2 Vertex Shader

一個簡單的逐頂點光照模型。光照效果由散射光和鏡面反射光構成。程式流程轉化頂點與法線到當前的眼座標系中vec3 ecPosition   = vec3 (gl_ModelViewMatrix * gl_Vertex);vec3 tnorm        = normalize(gl_NormalMatrix * gl_Normal);得到 頂點->光源向量 與 頂點->觀察點向量vec3 lightVec     = normalize(LightPosition - ecPositi

如何計算投影紋理座標 – 補充

原文見:http://www.cnblogs.com/Pointer/archive/2004/12/20/79323.html 最近通過學習固定渲染管線的光柵化過程,終於明白了扭曲的原因。 我們先設V=投影變換前的頂點,V'=投影變換後的齊次頂點。 在螢幕空間中,V的各項屬性並不是線性分布的,但1/Vz是線性分布的,對於其它的頂點屬性Vb/Vz也是線性分布的(《Mathematics for 3D Game Programming & Computer

IEEE浮點數標記法

IEEE浮點數標記法,記得以前學過,不過印象已經模糊不清.藉機會補習一下.:)本文由CSDN上大名鼎鼎的“奶油狗“所著.文章淺顯易懂,可惜有一處錯誤: 12345.0f 轉化為float應為 00 E4 40 46,而 00 20 F1 47

難道真的是RedBook錯了?

多謝CSDN上happy__888([顧問團]尋開心)的熱心指點,明白了法向量的矩陣變換方式和頂點的矩陣變換方式是不同的。以前確實是沒有注意過這個問題。心藍兄有一篇文章介紹了這一點:http://xreal.51.net/Game/NormalMatrix.htm 推導過程見上文,最後的結論是:假設矩陣M為頂點Vo的模型視圖變換矩陣,No為頂點Vo的法線。Ve為進行過模型視圖變換後的眼座標系下的頂點座標,Ne為Ve的法線。那麼有: Ve = M * Vo;Ne = No * M-1;

又遇到讓人疑惑的問題

RedBook裡關於使用GL_EYE_LINEAR模式自動產生紋理座標的原理也看不明白了。<xe, ye, ze, we>是眼座標系中的頂點座標,也就是經過了模型視圖變換後的頂點座標吧。M-1是模型視圖矩陣的逆矩陣。 generated coordinate = p1' xe + p2' ye + p3' ze + p4' we where (p1' p2' p3' p4') = (p1 p2 p3 p4)M-1即:generated coordinate = (<p1,p2,

shadow mapping with glsl

per-pixel lighting + light mapping + shadow mapping 構成光照系統。

不知道哪裡有關於OGL Automatic Texture-Coordinate Generation過程的詳細說明

仔細查閱了一下RedBook上關於自動紋理座標產生的說明:The GL_OBJECT_LINEAR function calculates the texture coordinates in the model's coordinate system. In Example 9-3 , where the contour lines are perpendicular to the base of the teapot, they would remain so, no matter how

GLSL學習筆記 – 9.1 Transformation

轉換頂點到裁減座標系中的兩種方式gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;gl_Position = ftransform();轉換頂點到眼座標系中vec4 ecPosition;vec3 ecPosition3;    // in 3 space// Transform vertex to eye coordinatesif (NeedEyePosition){    ecPosition  = gl_ModelViewMat

John Carmack on shadow volumes

I recieved this in email from John on May 23rd, 2000.- Mark KilgardI solved this in a way that is so elegant you just won't believe it.  Hereis a description that I posted to a private mailing list:----------------------------------------------------

用一個土辦法證明RedBook的錯誤

根據RedBook的解釋,在自動紋理座標產生中,GL_OBJECT_LINEAR模式不需要使用模型視圖矩陣,GL_EYE_LINEAR模式需要使用模型視圖矩陣。那麼我們可以做一系列實驗驗證上述結論:1 使用GL_EYE_LINEAR模式產生紋理座標。設定模型視圖矩陣與投影矩陣,讓OGL用固定渲染管線進行座標變換。實驗結果:程式結果正常,紋理座標同眼座標相關,隨眼座標的變化而變化。2

一種簡易的卡通渲染方法(下)

第二個重要的步驟:勾邊。《Introduction to 3D Game Programming with DirectX 9.0》中介紹了一種方法,其原理如下:1 對於一條邊構造一個退化四邊形2 對於該邊相鄰的兩個三角面,如果從視點方向看到這兩個三角面一個是正面一個是背面;或者該邊只與一個三角面相鄰,則該邊為輪廓線,否則不是。3

不區分模型視圖變換害處大啊 T___T

以前一直只用一個矩陣累加模型視圖變換,甚至不知道world space是什麼……這麼做對於只有一兩個物體的demo還可以,如果情境複雜了就會變得比較費解吧。看來需要自己封裝一個camera類了。btw:今天發現對於反射環境映射計算中的入射光向量是可以不進行規格化的,因為反射的計算公式中沒有用到||L||=1這一條件,只用到了||N||2=1(由反射向量計算公式推導可知),這也算是一點點最佳化吧。但是折射計算中用到了||L||=1,所以必須對入射光向量進行規格化。

Planar Shadow中Shadow Matrix的推導

[概述]1 由光源方向V和頂點Q可以確定一條射線K。2 由法線N和法線上任一已知點P0可以確定平面L。3 Q在L上的投影實際上就是K同L的交點P。4 最終需要求的是如何通過矩陣變換將Q變換成P。[推導]首先,平面方程的向量形式是:N · (P - P0) = 0;N:法線,P0:平面上已知任一點若設:D = - N · P0, 則平面方程為:N · P + D = 0; (1)然後,射線方程是:P = Q + tV; (2)Q:射線上任一點,V:射線方向將(2)式代入(1)式得:N · Q +

simple shadow mapping

解決了project texture後,shadow mapping就比較容易了。 對於基於ogl的shadow mapping,基本上有如下幾種做法: 1 採用GL_ARB_depth_texture, GL_ARB_shadow擴充。Pass1中以光源為視點渲染情境到幀緩衝,然後將深度部分copy到depth texture;Pass2中以眼睛為視點,將depth texture投影到情境後使用GL_ARB_shadow擴充比較紋理值與紋理座標的r值,判斷該fragment是否處於陰影中。

兩道挺有意思的思考題

一道是在CSDN上看到的,一道是在部落格堂上看到的。第一題現有1000個蘋果,10個盒子,問各個盒子內應該分別放入多少個蘋果,才能使得使用者要買任意1至1000之間的一個蘋果數,都可以給他(賣的時候是整個盒子賣,不能拆盒子的封裝)。第二題一個監獄長把所有囚徒招來,對他們說,1. 這次會議結束之後,你們將被隔離,互相之間再也不能交流任何資訊,除了2。2.

RaymondKing翻譯的《Introduction to 3D Game Programming with DirectX 9.0》

今天在CSDN上看到RaymondKing翻譯的《Introduction to 3D Game Programming with DirectX 9.0》,正巧可以作為學習GLSL的補充。嘗試分析了一下2.4節中用HLSL實現的散射光照代碼,發現其原理和GLSL基本是一樣的。加刪除線的部分是《OpenGL Shading

Toon Shading, step 1

學以致用。:)不過略有不同的是我沒有採用根據光線強度設定紋理座標的方式,而是根據光線強度直接確定的當前象素的顏色值。SHADER代碼如下:VertexShader//-----------------------------------------------------------------------------// vertex shader//------------------------------------------------------------------------

塗鴉的Origo Engine

http://www.tuyasoft.com 又是一則“舊聞”了。:D 今天才看到,下載DEMO看了一下,做的很不錯,有很多值得學習的地方。 地形LOD:   植被最佳化: 據說使用了Alpha LOD(不清楚指的是什麼:( )和Impostor(Instancing?)技術。 水面渲染: 類似於HL2中的水面,只是沒有折射,渲染反射RT後用一組Normalmap進行了擾動,效果很不錯。 水下處理類似WOW,當Camera進入水下後就整個霧化。不過感覺水下的部分還沒做完。   陰影系統:

MyEclipse與xmlbuddy的衝突【原創】

  前些日子,下了個Eclipse 3.2,用著還好,突然想起MyEclipse ,就跑到官網,下了最新的MyEclipse 5.0 M2,再找了個註冊碼,用起來了。  隨便建了個Web Application,然後將struts的相關檔案加到項目中,開啟xml檔案的時候,就用的原來的xmlbuddy開啟,死也不能用MyEclipse 內建的xml編輯器,老是報錯:Unsupported  Content Type,然後我就總在那調Content

總頁數: 61357 1 .... 10551 10552 10553 10554 10555 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.