java - OpenGL 着色器 - 使用法线旋转顶点

标签 java opengl camera rotation lwjgl

给定surfaceNormal(gl_NormalMatrix * gl_Normal)gl_Vertex,我如何旋转gl_Vertex以使其适应该法线。我想将其用于广告牌和一般轮换。

2 个问题:

  1. 如何使用 surfaceNormal 旋转 gl_Vertex(在 .vert 着色器中)
  2. 旋转应该在 GPU 上(在着色器中)还是在 CPU 上完成? (请根据此问题调整问题#1,给定2个Vector3fs,一个用于旋转(正常),另一个用于顶点位置(如果应该在CPU上完成)

谢谢!

最佳答案

在大多数情况下,旋转应该在 CPU 上通过模型矩阵(或直接世界矩阵)的方式完成。

即使 CPU 比 GPU 慢,请记住,将为每个顶点执行顶点着色器,而链接到网格的模型矩阵(因此很多顶点)每帧仅计算一次,如果您的网格是动态的,如果您的网格不移动,则整个程序仅运行一次。

关于java - OpenGL 着色器 - 使用法线旋转顶点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29433384/

相关文章:

java - 在 java 中 - 对相似值进行分组

javascript - Java UTF-8 特殊字符转 JavaScript

java - 在 Swing 的 JTextPane 中设置选项卡策略

c++ - 绘制小 map (游戏)

Android:屏幕关闭后保持摄像头 LED 亮起

c# - 重启设备后出现图片

java - 使用冒泡排序排序 ArrayList<BigDecimal>

c++ - OpenGL FBO - 白色像素显得透明

opengl - Win32 的 CoreImage

ios - 用 Swift 模糊 CameraView 中的特定区域?