#
摘要: 最近發現一個很特別的問題,可能是我水平未夠,找不到原因。
閱讀全文
摘要: 最近使用clipplane的時候,當渲染物在固定管線的時候,一切正常,但當渲染物用了vertexshader的時候,完全看不到了,找了很久也不知道問題的所在。
閱讀全文
最近把shader那部分從設置Constanttable轉為SetXXXShaderContant,之前的用法有些問題,所以沒顯示正確,下面總結一下。
1、設置的寄存器變量必須每128位對齊,即使是一個float,也要設置成float[4]。
2、設置矩陣必須由行矩陣轉為列矩陣,否則數據不正確。
摘要: 上次寫了一個UI的控件editbox,我采用了IME響應中文輸入,但在消息處理的時候收到WM_INPUTLANGCHANGEREQUEST,卻沒收到WM_INPUTLANGCHANGE的消息,在網上也查不到原因,看MSDN一開始也沒看出原因。但實際上是我自己沒能理解MSDN所說的。
閱讀全文
摘要: 寫代碼這么久,材質、渲染狀態和shader的問題一直給我有很大的困攏,今天為了整理一下思路,決定寫一下設計文檔和序列圖。經過這樣一寫,和對之前渲染狀態管理的一些文章的理解,思路終于清楚了一點。
閱讀全文
摘要: 溫故知新,水面很早就實現了,但沒有在這里寫過,今天總結一下。
水的模擬要達到以下效果:水面的折射與反射,水的波動。
要達到這種效果,需要以下四張紋理:折射紋理(RenderTarget),反射紋理(RenderTarget),Bumpmap,水自己的紋理。
折射與反射的原理就不具體說了,下面只說實現步驟。
閱讀全文
摘要: 堆(heap)和棧(stack)是C/C++編程不可避免會碰到的兩個基本概念。首先,這兩個概念都可以在講數據結構的書中找到,他們都是基本的數據結構,雖然棧更為簡單一些。在具體的C/C++編程框架中,這兩個概念并不是并行的。對底層機器代碼的研究可以揭示,棧是機器系統提供的數據結構,而堆則是C/C++函數庫提供的。
閱讀全文
摘要: 為了設計上的靈活,我把shader、紋理等都封裝到材質(Material)里,以方便渲染對象在不同狀態下材質的切換以達到不同的渲染效果。
閱讀全文
摘要: 摘自http://www.cnblogs.com/ixnehc/articles/1282350.html
我歸納一下就是:準備頂點和圖元數據----》傳到D3D渲染管線----》處理頂點數據(固定、shader)----》幾何處理(裁剪、背面剔除、光柵化)----》像素處理(紋理采樣)----》著色
閱讀全文
摘要: 創建一個空的工程
我們首先在3DS Max創建面板里面建立一個簡單的幾何物體,稱之為”widget” 。可以通過視圖窗口里三個參數去修改它的幾何特性。Size表示輪廓尺寸,第二個參數left表示物體左翼的外延,第三個參數right表示右翼的外延。
首先我們去了解一下怎樣建立一個工程,可以通過以下兩種方法:
閱讀全文