我正在开发一个用于分子三维可视化的小工具。为了实现这个项目,我选择采用 "Brad Larson" 先生的苹果软件 "Molecules" 所使用的方法。您可以在此链接中找到有关该技术的简要介绍:Brad Larsson 软件介绍。
为了完成我的工作,我必须计算 球体冒充物 和 圆柱体冒充物。
目前,我已经成功地完成了 "球体冒充物",并在另一个教程Lies and Impostors 的帮助下完成了它。
总结一下球体冒充物的计算过程:首先,我们将 "球体位置" 和 "球体半径" 发送到 "顶点着色器" 中,在相机空间中创建一个始终面向相机的正方形,然后我们将正方形发送到片段着色器中,在那里我们使用简单的光线追踪来查找包含在球体中的正方形的哪个片段,并最终计算出片段的法线和位置以计算照明。(另外我们还编写了 gl_fragdepth,以为我们的冒充球提供良好的深度!)
但现在我在计算圆柱体冒充物时遇到了阻碍。我试图在球体冒充物和圆柱体冒充物之间进行对比,但是我没有找到任何线索。我的问题是,对于球体来说很容易,因为无论如何我们看它,我们总是会看到同样的东西:“一个圆”。并且球体完全由数学定义,因此我们可以轻松地找到位置和法线以计算照明并创建我们的冒充物。
对于圆柱体而言,情况不同,我无法找到一个适用于 "圆柱体冒充物" 的模型,因为圆柱体根据我们看它的角度而显示许多不同的形式!
所以我的请求是,请您给出关于我的 "圆柱体冒充物" 问题的解决方案或指示。
为了完成我的工作,我必须计算 球体冒充物 和 圆柱体冒充物。
目前,我已经成功地完成了 "球体冒充物",并在另一个教程Lies and Impostors 的帮助下完成了它。
总结一下球体冒充物的计算过程:首先,我们将 "球体位置" 和 "球体半径" 发送到 "顶点着色器" 中,在相机空间中创建一个始终面向相机的正方形,然后我们将正方形发送到片段着色器中,在那里我们使用简单的光线追踪来查找包含在球体中的正方形的哪个片段,并最终计算出片段的法线和位置以计算照明。(另外我们还编写了 gl_fragdepth,以为我们的冒充球提供良好的深度!)
但现在我在计算圆柱体冒充物时遇到了阻碍。我试图在球体冒充物和圆柱体冒充物之间进行对比,但是我没有找到任何线索。我的问题是,对于球体来说很容易,因为无论如何我们看它,我们总是会看到同样的东西:“一个圆”。并且球体完全由数学定义,因此我们可以轻松地找到位置和法线以计算照明并创建我们的冒充物。
对于圆柱体而言,情况不同,我无法找到一个适用于 "圆柱体冒充物" 的模型,因为圆柱体根据我们看它的角度而显示许多不同的形式!
所以我的请求是,请您给出关于我的 "圆柱体冒充物" 问题的解决方案或指示。