Three.js 渲染所有几何三角形的顶点着色器,使它们面向相机

Three.js vertex shader to render all geometry triangles so they face camera

我想在 Three.js 中创建一个顶点着色器来渲染带纹理的几何体的面,以便所有三角形都面向相机。

这是为了模拟 Three.js 点的功能和性能,但没有 gl_PointSize 的大小限制。

我不太确定在顶点着色器中执行什么计算。任何帮助表示赞赏。

您必须向几何体添加自定义属性,最容易使用的是指向三角形中心的矢量

在顶点着色器中你必须计算如何移动每个顶点,你现在有

  • 顶点位置
  • 向量到中心
  • 顶点法线==面法线
  • 相机方向(来自矩阵)

从中你可以计算出三角形中心,它是静态的并且计算旋转顶点必须围绕三角形中心垂直于 向量的轴到中心 以便 正常 将作为 相机方向 [ 的倒数出现=10=]

数学不是很复杂,但是由于不存在调试,编写着色器代码很乏味 - 我建议您首先编写一个旋转几何体位置的代码(仅使用相同的参数)并将其移植到着色器