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