OpenGL 着色器坐标系
opengl shader Coordinate Systems
我在页面上学习OpenGL:https://learnopengl.com/Getting-started/Coordinate-Systems 例如,他们使用 3 个矩阵(模型、视图、投影(并全部推送到着色器程序。但是可以计算 MVPmat = 投影 * 查看 * CPU 上的模型并推送一次到着色器。
-
使用 3 个矩阵:
- +使用图形用户界面。
- +清洁。
- - 需要计算器 MVPmat 为所有像素。
- - 使用16位或32位计算器。
-
在 CPU 上使用 MVPmat = 投影 * 查看 * 模型。
- +每个型号一次。
- +使用64位计算器。
- -使用中央处理器。
- -㛺。
什么是最好的方法?我在GG上找不到答案,或者可能是我很愚蠢。
P/S 对不起我的英语。 谢谢。
我不确定您所说的"干净"与"不干净"是什么意思。我也不确定为什么您认为在CPU上计算模型-视图-投影矩阵意味着必须使用64位精度来完成此操作。当涉及到与图形相关的事情时,几乎不需要 64 位浮点运算。实际上,通常几乎不需要超过单精度浮点数。例如,除非你正在做一些科学计算,而你真的需要这种精度......
回答您的问题:如果使用组合模型-视图-投影矩阵足以满足您的需求,那么使用组合矩阵似乎是最佳解决方案。您只需计算一次组合矩阵。您只需将一个矩阵上传到 GPU,而不是三个。您只需在着色器中获取一个矩阵,而不是三个。您只需要在着色器中进行一次矩阵向量乘法,而不是三次......
相关文章:
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 如何在全屏模式下(在OpenGL中)使背景透明
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- OpenGl glm rotate
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- OpenGL在启用深度测试时不会丢弃我的碎片
- OpenGL相机和相机空间转型的困惑
- OpenGL将纹理四边形渲染为(0,0)
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 发布旋转矩阵(openGL/glm)
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- OpenGL 16 位模板缓冲区?
- OpenGL 着色器坐标系
- OpenGL/GLM-切换坐标系方向
- 在 opengl 中视口的一角绘制世界坐标系
- OpenGL缩放/平移坐标系或语句顺序错误