2017-10-12 60 views
0

我最近學了一個着色器。 正如我所知,簡單地說, 首先,製作一個緩衝區,保存頂點信息。 然後製作着色器文件並編譯。 最後,設置着色器和繪圖。 但是研究代碼,我猜想着色器和緩衝區之間沒有直接連接。所以我想知道着色器如何讀取頂點信息?只是做一個着色器讀取一個存在的緩衝區? 我不確定我的打算是否會順利交付。 因爲我不會說英語。我希望你們能理解我。着色器如何讀取頂點信息?

+0

它取決於管道和Direct3D的版本,你所指的 – Asesh

+0

基本上,你提供頂點數據(位置,紋理座標,顏色,切線等)並將這些數據綁定到頂點着色器。你怎麼做取決於你所指的Direct3D版本 – Asesh

+0

請閱讀[https://learnopengl.com/#!Getting-started/Shaders](https://learnopengl.com/#!Getting-started/Shaders )在調用着色器之前調用IASetVertexBuffers(positionOfmyBuffer,nbBuffer,&m_vertexBuffer,&stride,&offset)之前在d3d11中調用 – Rabbid76

回答

0

你是不是對InputLayout提到,以使其有必要在上下文中定義: 頂點緩衝, 指數緩衝區(可選), 輸入佈局(數據如何在頂點着色器參數進行分配,大小,類型,「每一步的偏移」), VS和PS