3d - 圆锥尖端的法线
问题描述
我正在使用 WebGL,移植一些用 OpenGL 编写的旧程序。有一个具有阿基米德螺旋基的圆锥。它从 0 到 Math.PI,并在相反方向上与 X 轴对称。问题在于锥形尖端的照明过渡,它不平滑。但它在金字塔的基础上是平滑的。
左边分为十个扇区,右边分为四十个扇区。问题在两者上都是可见的。法线计算为每个点中阿基米德螺旋的梯度。
我理解它为什么会发生,并且在几何上它应该发生在任何形状上。但以防万一,这个炉膛锥的上部有方程:
螺旋被描述为 F(φ) = [φ * cos(φ), φ * sin(φ)]
计算出的法线 ∇F(φ) = [sin(φ) + φ * cos(φ), -cos(φ) + φ * sin(φ)]
Z 坐标在我们的例子中并不重要。
特别是我尝试了不同的建议,例如如下所述:Low polygon cone - smooth shading at the tip
但它的工作方式与 gl.TRIANGLE_FAN 类似,它的作用不同,尖端淡化为单一颜色,然后插值到其他法线每个三角形的。
已解决:谢谢大家。解决方案按预期工作,请参阅以下设置屏幕截图。左边是一个分成十个扇区的圆锥体,右边是一个分成四十个扇区的圆锥体。
解决方案
推荐阅读
- python - Python 抽象类应强制派生类在 __init__ 中初始化变量
- java - Spring Boot:无法配置数据源:未指定“url”属性,并且无法配置嵌入式数据源
- mysql - 厨师创建数据库数组
- python - 使用聚合函数过滤输出
- powershell - 在 foreach 循环中第一次调用后,Jenkins 上的 Mstest 输出不需要的 UTF-8 字符
- php - PHP 脚本不等待 curl 响应
- mysql - 如何从文件中加载数据而不重复记录
- python - 没有属性'get_default_graph'
- windows - 尝试在 Windows 7 机器上使用批处理文件自动化简单的任务和过程控制
- python - 在 Python 单元测试中分别模拟多个 API 请求