这不是一个教程,这是一个我刚解决的问题,我觉得它是一个不错的范例,所以决定和大家分享一下经验.在遇到这种难题的时候我是怎么应对的.
[img]http://t1.gstatic.com/images?q=tbn:ANd9GcSJTsopoEpVUuufjpexae1puZrXzyGzvyq5Gujlo3gK7DmosF1h5w[/img]
对Maya或是其它3维软件熟悉的朋友应该都知道法线这个东西,它是个向量,它的方向代表了多边形面的正面的面向方向.
那么我们怎么能知道一个多边形面是正面向外还是向内呢?
1. 当然是先去查看命令稳当,看看Maya有没有提供相应的涵数来查询.
结果是只能得到面的法线向量.
2. 查看API,毕竟API提供更多的功能.
结果还是只能得到面的法线向量.
3. 好吧,Maya没提供更直接能用判断方法,这时我觉得只能依靠图形学算法了(听起来很难,的确是很难)
a. 我重新分析一下问题,法线的指向就是面的正面面向,那我只要能判断多边形的正反面是那一面就行了,于是问题变成了如何判断一个面大正反面.
b.从那里入手?当然是搜索引擎了.不过在这之前我已经知道一个最简单的判断方法,在Opengl中顶点逆时针的面是正面,而顺时针的是反面.我能使用这个方法么?我不知道Maya中是不是跟Opengl的标准一样是逆时针的面是正面,而且我还要自己去实现顶点是逆时针还顺时针的算法,有难度,也耗时间,于是这方向先放下.
c. google后,wiki的[url=http://en.wikipedia.org/wiki/Normal_%28geometry%29]Normal (geometry)[/url]给出了法线的计算方程式,很高兴又有新方向了,但在阅读了wiki后发现还是不懂怎么去运用这些方程式,而且也不是很明白.但我可以感觉到这是个能根治这问题的方向.
面对这些难题我我都是以类似上面的方式来进行的,不过在思考的过程中我有时会开小差,这只是我的个人习惯而已,因为我的经历告诉我,在面对很复杂的问题的时候很容易钻牛角尖,而利用偶尔开小差能让我暂时把注意力移开,让我能更全面的去分析问题以及各个方面的可能性.
最终第一天思考下来没什么进展,但就在我下班离开公司的路上,一个想法在脑海里闪过,今天在详细的分析当时的想法的可行性后就开始测试和构思新的解决方案.
[img]http://t1.gstatic.com/images?q=tbn:ANd9GcSJTsopoEpVUuufjpexae1puZrXzyGzvyq5Gujlo3gK7DmosF1h5w[/img]
对Maya或是其它3维软件熟悉的朋友应该都知道法线这个东西,它是个向量,它的方向代表了多边形面的正面的面向方向.
那么我们怎么能知道一个多边形面是正面向外还是向内呢?
1. 当然是先去查看命令稳当,看看Maya有没有提供相应的涵数来查询.
结果是只能得到面的法线向量.
2. 查看API,毕竟API提供更多的功能.
结果还是只能得到面的法线向量.
3. 好吧,Maya没提供更直接能用判断方法,这时我觉得只能依靠图形学算法了(听起来很难,的确是很难)
a. 我重新分析一下问题,法线的指向就是面的正面面向,那我只要能判断多边形的正反面是那一面就行了,于是问题变成了如何判断一个面大正反面.
b.从那里入手?当然是搜索引擎了.不过在这之前我已经知道一个最简单的判断方法,在Opengl中顶点逆时针的面是正面,而顺时针的是反面.我能使用这个方法么?我不知道Maya中是不是跟Opengl的标准一样是逆时针的面是正面,而且我还要自己去实现顶点是逆时针还顺时针的算法,有难度,也耗时间,于是这方向先放下.
c. google后,wiki的[url=http://en.wikipedia.org/wiki/Normal_%28geometry%29]Normal (geometry)[/url]给出了法线的计算方程式,很高兴又有新方向了,但在阅读了wiki后发现还是不懂怎么去运用这些方程式,而且也不是很明白.但我可以感觉到这是个能根治这问题的方向.
面对这些难题我我都是以类似上面的方式来进行的,不过在思考的过程中我有时会开小差,这只是我的个人习惯而已,因为我的经历告诉我,在面对很复杂的问题的时候很容易钻牛角尖,而利用偶尔开小差能让我暂时把注意力移开,让我能更全面的去分析问题以及各个方面的可能性.
最终第一天思考下来没什么进展,但就在我下班离开公司的路上,一个想法在脑海里闪过,今天在详细的分析当时的想法的可行性后就开始测试和构思新的解决方案.