Three.js 渲染所有几何三角形的顶点着色器,使它们面向相机
Three.js vertex shader to render all geometry triangles so they face camera
我想在 Three.js 中创建一个顶点着色器来渲染带纹理的几何体的面,以便所有三角形都面向相机。
这是为了模拟 Three.js 点的功能和性能,但没有 gl_PointSize 的大小限制。
我不太确定在顶点着色器中执行什么计算。任何帮助表示赞赏。
您必须向几何体添加自定义属性,最容易使用的是指向三角形中心的矢量
在顶点着色器中你必须计算如何移动每个顶点,你现在有
- 顶点位置
- 向量到中心
- 顶点法线==面法线
- 相机方向(来自矩阵)
从中你可以计算出三角形中心,它是静态的并且计算旋转顶点必须围绕三角形中心垂直于 向量的轴到中心 以便 正常 将作为 相机方向 [ 的倒数出现=10=]
数学不是很复杂,但是由于不存在调试,编写着色器代码很乏味 - 我建议您首先编写一个旋转几何体位置的代码(仅使用相同的参数)并将其移植到着色器
我想在 Three.js 中创建一个顶点着色器来渲染带纹理的几何体的面,以便所有三角形都面向相机。
这是为了模拟 Three.js 点的功能和性能,但没有 gl_PointSize 的大小限制。
我不太确定在顶点着色器中执行什么计算。任何帮助表示赞赏。
您必须向几何体添加自定义属性,最容易使用的是指向三角形中心的矢量
在顶点着色器中你必须计算如何移动每个顶点,你现在有
- 顶点位置
- 向量到中心
- 顶点法线==面法线
- 相机方向(来自矩阵)
从中你可以计算出三角形中心,它是静态的并且计算旋转顶点必须围绕三角形中心垂直于 向量的轴到中心 以便 正常 将作为 相机方向 [ 的倒数出现=10=]
数学不是很复杂,但是由于不存在调试,编写着色器代码很乏味 - 我建议您首先编写一个旋转几何体位置的代码(仅使用相同的参数)并将其移植到着色器