1,理论分析
圆柱面的纹理映射,可以仿照球面的纹理映射。
只需要定义圆柱面对应的“映射技术”(即OpenCylinderMap)。
当然,也可以在OpenCylinder::hit()中计算撞击点时,计算出纹理映射相关的u、v值。为什么可以这么做?我们先看一下ImageTexture::get_color()中计算纹理图片中位置(row,column)的两种方式:
所以只需要在OpenCylinder::hit()中计算撞击点时添加如下代码段即可:
这段代码的原理可以参考“问题三十六(4)”:
http://blog.youkuaiyun.com/libing_zeng/article/d