我是webgl的新手。我想知道如何生成顶点和片段着色器值。 我看到了一些样本,可以看到大量的这些值。可以弄清楚如何生成这些值。是否有任何工具来生成这些值。 我错过了什么吗?没有教程解释如何创建这些着色器值。 对此有任何帮助表示赞赏。
答案 0 :(得分:3)
您最有可能看到的是它们的顶点或索引缓冲区信息。这些通常存储为像浮点数或整数的大数组:
[1.0,2.0,3.0,0.5,0.5,1.0,0.0,0.0]
根据顶点布局表示,这可以是单个顶点的位置,纹理坐标和法线,如下所示:
位置:(x:1.0,y:2.0,z:3.0) Texcoord:(u:0.5,v:0.5) 正常:(x:1.0,y:0.0,z:0.0)
而且你通常会将它们中的一大堆一起打成一个大的长阵列。这些非常难以阅读,但通常由建模工具导出器生成并直接发送到GPU,因此通常没有太多的人工交互。
我做了一点write up一段时间,关于你如何告诉WebGL解释这些值,但我不确定你对3D几何有多了解,所以这可能有点太高了。一些早期的学习WebGL课程更详细地介绍了它:
答案 1 :(得分:0)
只需使用一些3D建模工具,就像Blender,Maya,3D Studio Max,Google Sketch up一样,真的无关紧要。
当您在其中创建模型时,这些程序会生成这些值,例如,您想创建一个鱼,然后打开3D建模工具,在那里完成工作然后将其导出到其中一个3D模型的许多文件格式有.x,.fbx,collada等。生成的文件将包含在任何地方渲染此3D鱼所需的所有信息,它将包含顶点位置,纹理坐标,法线(主要用于照明),也许是颜色和其他一些东西。
所以你只需要选择其中一种文件格式,学习如何从中获取所需的数据,以一种可以通过javascript(你说的那些数组)进行评估的方式,并将信息传递给顶点/片段着色器。