我正在使用Qt和QWt3D绘图工具,并对它们进行扩展以提供我需要的一些三维和二维绘图功能,因此在这个过程中我正在学习一些OpenGL。
目前我能够使用OpenGL绘制点,但仅限于圆形(或通过关闭抗锯齿来绘制“正方形”)。这些点的表现方式很好 - 即它们不会随着缩放而改变大小,尽管它们的x / y / z位置会随着我缩放、平移等操作相应地移动。
我想要做的是使用各种形状(^,<,>,*,.等)绘制点。根据我对OpenGL的理解(并不是很多),这不是一件容易的事情,因为OpenGL将所有东西都视为“真实”的三维对象,因此缩放除了“点”之外的任何OpenGL形状都会改变对象的投影大小。
经过一些阅读,我认为有(至少)两种可能的解决方法:
1. 使用OpenGL纹理。这似乎并不困难,但我相信随着缩放,纹理图像会变大和变小 - 这是正确的吗?
2. 使用OpenGL多边形、线条等,并绘制*、三角形或其他形状。但是这里我又遇到了同样的问题 - 如何防止OpenGL随着缩放重新调整“点”的大小?
解决方法是直接重新绘制整个数据集,以确保点的大小保持不变吗?是否有某种方法只告诉OpenGL不重新计算对象的大小?
如果这些信息在OpenGL文档中,请原谅我没有找到。
目前我能够使用OpenGL绘制点,但仅限于圆形(或通过关闭抗锯齿来绘制“正方形”)。这些点的表现方式很好 - 即它们不会随着缩放而改变大小,尽管它们的x / y / z位置会随着我缩放、平移等操作相应地移动。
我想要做的是使用各种形状(^,<,>,*,.等)绘制点。根据我对OpenGL的理解(并不是很多),这不是一件容易的事情,因为OpenGL将所有东西都视为“真实”的三维对象,因此缩放除了“点”之外的任何OpenGL形状都会改变对象的投影大小。
经过一些阅读,我认为有(至少)两种可能的解决方法:
1. 使用OpenGL纹理。这似乎并不困难,但我相信随着缩放,纹理图像会变大和变小 - 这是正确的吗?
2. 使用OpenGL多边形、线条等,并绘制*、三角形或其他形状。但是这里我又遇到了同样的问题 - 如何防止OpenGL随着缩放重新调整“点”的大小?
解决方法是直接重新绘制整个数据集,以确保点的大小保持不变吗?是否有某种方法只告诉OpenGL不重新计算对象的大小?
如果这些信息在OpenGL文档中,请原谅我没有找到。