2017-10-12 61 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