一个3ds max导入插件的任务,大意就是把模型导入到场景中,前期走了弯路最后真正开始做两周就做完了。以上,不算墨迹,还算可以吧。
不过一个问题一直没解决,就是模型本身除了自身纹理还有一层光照阴影的纹理,也就是sdk里面的mapchannel 纹理通道一共是两层。导入进去之后第二层的纹理坐标总是和第一层一样。
网上关于这个的资料基本没有,很难找,sdk,谷歌,找高手帮忙,都没有解决。
最近有机会重新做这个,先把源码进行调试,release模型总是进不去,改用DEBUG模型编译会出错,我发现自己有一个思路问题,遇到麻烦先绕行,怕是从这里走不通。重载的错误,师兄坚持下,在论坛发了帖子求助,http://bbs.csdn.net/topics/391889850 众多高手帮忙下一天的时间就解决了,主要是因为DEBUG下有预处理命令,而这个没办法绕过,巧妙的用静态变量编译通过了。
正常一步一步跟踪,找有嫌疑的地方。最后发现自己理解的Texmap 光是通过mtl设置纹理(ID_DI或者ID_SI)还不够,得到的两层mapchannel都是一样的都为1,而在max里面 一个是1,一个是2,做过的应该都知道。接下来就是找办法在导入里面设置了,因为bitmaptex没有任何一个函数是指定 mapchannel的,找父类也没有找到,绝望之时发现 有个UVGen,妈的,一直记得这个是对应channel(0)的,没仔细看害死人啊。所以
bitmaptex->getUVGen()->setMapchannel(2)
OK!心情好舒畅,总结一下,下次不会这么慢了QAQ