Direct3D 11 光照和材質

2021-10-11 03:00:59 字數 1245 閱讀 9083

惟日孜孜,無敢逸豫。——《尚書·君陳》。

惟:句首語氣詞,無義。日:每日,天天。孜孜(zī資):刻苦努力,不懈怠。逸豫:安適,逸樂。這兩句大意是:每天勤勤懇懇,不敢安閒逸樂。這兩句可供引用形容或描寫有些人對工作和學習非常刻苦,經常孜孜不倦,辛勤努力。

乙個物體沒有光源照射,但是存在各種光線,通過折射反射到達這個物體,該物體內看見,基於真個自然界環境的整體亮度,成為環境光。

setrenderstate(d3drs_ambient, d3dcolor_crgb(0,0,0));
太陽直射可以看做漫反射的近似。這種光的類沿著特定方向傳播,當他到達某一表面時,將沿著各個方向均勻反射,所以無論從哪個方向觀察,物體表面的亮度都是相同的。

採用漫反射這種光照模型時,無需要考慮觀察的位置,但是要考慮漫反射反射光的空間位置和方向。

沿著特定方向傳播,當光到達某乙個表面的時候,將嚴格的沿著另乙個方向反射,從而形成只能在乙個角度範圍內才能觀察到的高亮度照射。

鏡面反射取決於觀察者的角度。漫反射於視覺無關,鏡面反射於視覺有關。

因為鏡面反射於其他型別的光相比,計算量要大得多,所以direct3d預設關閉鏡面反射。

setrenderstate(d3drs_specularenable, true);
物體自身發出的光,根據物件的自發光材質實現的。

點光源(point light)

方向光(directional light)

聚光燈(spot light)

// 設定光源

setlight()

// 啟用光源

lightenable()

物體表面的材質屬性決定了他能反射什麼顏色的光線,以及能反射多少。

setmaterial(const d3dmaterial9 *pmaterial)

;getmaterial(d3dmaterial9 *pmaterial)

;

direct3d預設的材質屬性反射所有漫反射的光,不反射其他光,也沒有自發光顏色。

光源屬性

乙個結構體d3dlight9,兩個方法 setlight 和 lightenable

材料屬性

乙個結構體 d3dmatterial9,乙個方法 setmaterial 和法向量的計算。

Direct3D11入門 環境配置

參考 vs2017開啟2010工程 參考 error x3501 main entrypoint not found 參考 右鍵.fx檔案,屬性 配置屬性 常規 項型別 將 hlsl編譯器 改為 不參與生成 vs2017編譯directx11的effect框架時,出現c2323錯誤 參考 編譯完後 ...

D3D 9和D3D 11繪製流水線對比

繪製流水線 pipline 是圖形學程式設計中屬於各種圖形學框架的骨架。windows平台下3d遊戲開發幾乎都會用到d3d來進行遊戲引擎的設計。d3d 9是使用比較廣泛的乙個版本,d3d 9 中比較核心的就是固定渲染管線 fixed function pipline 下圖是從官方的sdk中翻譯的,從...

direct3D和directX是一回事嗎?

direct3d只是directx其中乙個增強功能 directx是由很多api組成的,按照性質分類,可以分為四大部分,顯示部分 聲音部分 輸入部分和網路部分 顯示部分 聲音部分 輸入部分 directinput可以支援很多的遊戲輸入裝置,它能夠讓這些裝置充分發揮最佳狀態和全部功能。除了鍵盤和滑鼠之...