目錄
1、dx與hlsl的矩陣
2、建立常量緩衝區的尺寸需要按照16位元組對齊
dx的矩陣(directx::xmmatrix)按照行主元優先儲存,而hlsl的矩陣預設按照列主元優先儲存。解決這個問題的方法有兩種
1)將directx的矩陣轉置
directx::xmmatrix m_matrix;
...directx::xmmatrixtranspose(m_matrix);
2)在hlsl中用 row_major宣告矩陣
cbuffer cbuffer0: register(b0)
我更喜歡做法2
建立常量緩衝區的時候需要填充 d3d11_buffer_desc 結構體,其中bytewidth屬性表示緩衝區的大小,這個屬性應該為16的整數倍,否則緩衝區會建立失敗
bufferdesc = {};
bufferdesc.bindflags = d3d11_bind_constant_buffer;
bufferdesc.cpuaccessflags = 0;
bufferdesc.usage = d3d11_usage_default;
bufferdesc.bytewidth = sizeof(cbuffertrans); // cbuffertrans 是乙個結構體,尺寸按照16位元組對齊,若不是16位元組的整數倍,緩衝區會建立失敗
hr = m_pd3ddevice->createbuffer(&bufferdesc, nullptr, &m_pcbuffertrans);
DirectX11 學習筆記(14) 點光源
好久沒有更新部落格了。最近一直在忙一些其他的事情 dx都快忘了 今天繼續更新!上次說到簡單光照,今天我們就學習乙個點光源 影響點光源的因素主要有 範圍,位置,衰減 其中衰減用乙個二次方程來表達 attenuation att0 att1 d att2 d att0 常量修飾符 由於此值未乘以任何值,...
DirectX11渲染過程
網易作業deadline 要涼了555 對directx初始化完成後,就可以進行渲染了。struct vs input 輸入資料的格式 struct vs output 輸出資料的格式 vs output main vs input input 編譯之後生成cso檔案,使用readfiletoblo...
DirectX 11遊戲程式設計學習筆記之1 開場白
本文由哈利 2024958085 qq.com 這是我之前的部落格系列 directx9.0c遊戲開發手記之 龍書 第二版學習筆記 的平行版,也可以說是續集。說是平行版,因為這兩個部落格系列因為某種顯而易見的原因,內容是很平行的 而之所以說是續集,是因為前面那個系列可能就此坑掉了 前面那個系列是關於...