模型在3dmax软件中使用的问题
快捷键:
显示3ds面片数和顶点数:按数字键“7”
移动变换输入(即模型相对世界坐标系的移动),先选中对象,再点
选择并移动按钮,最后摁“F12”按钮。弹出修改界面
模型的缩放
此仿真平台是用到3ds模型的,故需要查看模型的长宽高(参考https://zixue.3d66.com/changjianwenti/tiwen_120.html),先选中对象,然后点
就像这个飞机模型,他的长宽高太大了,估计是的模型的系统单位设置错了,“自定义-单位设置”到此界面,
系统单位是模型的各顶点的单位,把单位改了就相当于对模型进行了整体的缩放了。这里飞机模型一般用到的单位为英寸。
http://www.8hmx.com/8/20171002/2621.html
https://jingyan.baidu.com/article/6079ad0ea460b728fe86db74.html
问题的再次生成,有时候把系统英寸改成米之后,导出的3ds模型的单位还是英寸,还是那么小
如这个模型
,大小为(因为系统单位为m),但导出的3ds模型再放进去的大小却是。
分析:当系统单位为米时,模型的通用单位是(其实不管系统单位是什么,模型的通用单位都是10.949*15.965*5.28),而我发现3ds文件是没有别的单位的,默认把通用单位后面加个英寸,所以导出的模型大小为(10.949英寸*15.965英寸*5.28英寸),单位不是米。
解决:
先将.max文件的系统单位设置为米,然后将.max文件保存,然后在软件里把.Max删除,再将软件的系统单位改为英寸,再将之前保存的.max文件拖进来,发现软件会让你选择使用系统的系统单位还是文件的单位为系统单位。如果用文件单位作为系统单位,则系统的每一个为一米,所以模型的网格数还是不变。如果用系统的系统单位,(Max文件是会保存单位的),打开的文件单位是米,即一个栅格代表一米,而现在系统单位是英寸,所以会把文件的一栅格(一米)划分成39.4格,每一格为一英寸,其实此时max模型的大小还是不变,但是网格数成单位换算倍速增加,,网格数明显变多了,当导出3ds模型时,模型的大小为(431.078英寸*628.541英寸*207.874英寸)即(10.949米*15.965米*5.28米),实现了3ds模型单位换算。
直接缩放:
如要进行整体的缩放,则在偏移:世界里面填入缩放的比例,如缩小为原来的一半,则填50%。
3dmax导出3ds具有过多要导出的面超过64k解决方法
修改器->网格编辑->ProOptimizer(有的版本是写的中文 专业优化)
选中对象,
原始模型
优化模型,顶点 % = 10.0(直接修改,原始是100.0)
在3dsMax软件中将模型面片有四边形和三角形互换
http://www.hkcgart.com/course/detail/id/2386.html
https://jingyan.baidu.com/album/3065b3b626e708fecff8a4cc.html?picindex=1
解决ofstream文件类数据导入精度不够问题:
比如:
std::ofstream outFile;
outFile.open(“1.txt”, std::ios::out);
outFile << 8632.256859 << std::endl;
outFile.close();
文件里保存的结果为“8632.25”
这里默认的保存数据的精度是六位,如果我们将原始数据保存起来,这要修改精度
我们可以设置小数点位为6位,和float类型小数点数一致。
,也可以用fprintf来写数据
我这里改为 fprintf(outFile,”%lf”,arr[i]);
第三种方法:将数值型转换为string类型,后输出则可保持原样不变