我正在使用 Qt 和 QWt3D 绘图工具,并扩展它们以提供我需要的一些 3-D 和 2-D 绘图功能,因此我在此过程中学习了一些 OpenGL。
我目前能够使用 OpenGL 绘制点,但只能作为圆形(或通过关闭抗锯齿来实现的“正方形”)。这些点以我喜欢的方式运行 - 即它们不会在我放大时改变大小,尽管它们的 x/y/z 位置在我缩放、平移等时会适当移动。
我想做的是使用无数形状(^、<、>、*、.等)绘制点。根据我对 OpenGL 的理解(不是很多),这并非易事,因为 OpenGL 将所有内容视为“真实”3-D 对象,因此放大任何 openGL 形状但“点”会改变对象的投影尺寸。
在做了一些阅读之后,我认为这个问题有(至少)两种可能的解决方案:
使用 OpenGL 纹理。这似乎并不难,但我相信纹理图像会随着我的放大而变得越来越小——对吗?
使用 OpenGL 多边形、线条等并绘制 *、三角形或其他任何东西。但是在这里我又遇到了同样的问题——如何防止 OpenGL 在缩放时重新调整“点”的大小?
每次用户缩放或平移以确保点保持相同大小时,是否只是硬着头皮重新绘制整个数据集?有没有办法告诉openGL不要重新计算对象的大小?
抱歉,如果这在某处的 OpenGL 文档中 - 我找不到它。