webgl中的顶点和片段着色器值

时间:2011-11-05 03:02:03

标签: webgl fragment-shader vertex-shader

我是webgl的新手。我想知道如何生成顶点和片段着色器值。  我看到了一些样本,可以看到大量的这些值。可以弄清楚如何生成这些值。是否有任何工具来生成这些值。 我错过了什么吗?没有教程解释如何创建这些着色器值。 对此有任何帮助表示赞赏。

2 个答案:

答案 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课程更详细地介绍了它:

Lesson 1Lesson 2

答案 1 :(得分:0)

只需使用一些3D建模工具,就像Blender,Maya,3D Studio Max,Google Sketch up一样,真的无关紧要。

当您在其中创建模型时,这些程序会生成这些值,例如,您想创建一个鱼,然后打开3D建模工具,在那里完成工作然后将其导出到其中一个3D模型的许多文件格式有.x,.fbx,collada等。生成的文件将包含在任何地方渲染此3D鱼所需的所有信息,它将包含顶点位置,纹理坐标,法线(主要用于照明),也许是颜色和其他一些东西。

所以你只需要选择其中一种文件格式,学习如何从中获取所需的数据,以一种可以通过javascript(你说的那些数组)进行评估的方式,并将信息传递给顶点/片段着色器。