如何在现代GLSL中使用点精灵绘制非均匀缩放的3D球体(椭球)?

时间:2019-05-31 06:38:03

标签: c++ opengl glsl

我正在尝试使用GLSL 440或高于330的GLSL版本中的点精灵渲染非均匀缩放的球体椭球)。

我们知道,GLSL中的点精灵可以轻松绘制单位球体,但很难绘制有特殊要求的椭圆体。

我的想法如下:

  1. 首先,我有一个点(球的中心);
  2. 然后,使用点精灵渲染一个单位球;
  3. 假设球体是由旋转比例矩阵(非均匀缩放)变换的;
  4. 然后,已变换的椭圆体将呈现在屏幕上。参考:Line-ellipsoid intersection

在旧版OpenGL中, GLUT 库中的函数 glutSloidSphere()可以轻松实现这一点,但是如何使用片段着色器在现代OpenGL 4.x中进行编码? 非常感谢!

我想要的最终效果类似于以下所示。

Effect Image01

Effect Image02

0 个答案:

没有答案