
DX以及OBJ。犀牛导出obj参数设置为DX以及OBJ。
1,DXF格式:优点,可以分层。C4D识别DXF格式中的图层,同时以每层为一个材质自动赋给物体。缺点,容易出现坡面,甚至局部的细节会有裂缝。
2,OBJ格式:优点,导出的面比较光滑,几乎不会出现破面。导出时,在OBJ导出选项中,选择“以多边形网格”模式导出即可。缺点就是无法分层,也无法将rhino中的色彩信息导入到C4D中。
OBJ文件不需要任何种文件头(File Header),尽管经常使用几行文件信息的注释作为文件的开头。OBJ文件由一行行文本组成,注释行以符号“#”为开头,空格和空行可以随意加到文件中以增加文件的可读性。有字的行都由一两个标记字母也就是关键字(Keyword)开头,关键字可以说明这一行是什么样的数据。多行可以逻辑地连接在一起表示一行,方法是在每一行最后添加一个连接符(\)。注意连接符(\)后面不能出现空格或Tab格,否则将导致文件出错。
下列关键字可以在OBJ文件使用。在这个列表中, 关键字根据数据类型排列,每个关键字有一段简短描述。
顶点数据(Vertex data):
v 几何体顶点(Geometric vertices)
vt 贴图坐标点(Texture vertices)
vn 顶点法线(Vertex normals)
vp 参数空格顶点 (Parameter space vertices)
自由形态曲线(Free-form curve)/表面属性(surface attributes):
deg 度(Degree)
bmat 基础矩阵(Basis matrix)
step 步尺寸(Step size)
cstype 曲线或表面类型 (Curve or surface type)
元素(Elements):
p 点(Point)
l 线(Line)
f 面(Face)
curv 曲线(Curve)
curv2 2D曲线(2D curve)
surf 表面(Surface)
自由形态曲线(Free-form curve)/表面主体陈述(surface body statements):
parm 参数值(Parameter values )
trim 外部修剪循环(Outer trimming loop)
hole 内部整修循环(Inner trimming loop)
scrv 特殊曲线(Special curve)
sp 特殊的点(Special point)
end 结束陈述(End statement)
自由形态表面之间的连接(Connectivity between free-form surfaces):
con 连接 (Connect)
成组(Grouping):
g 组名称(Group name)
s 光滑组(Smoothing group)
mg 合并组(Merging group)
o 对象名称(Object name)
显示(Display)/渲染属性(render attributes):
bevel 导角插值(Bevel interpolation)
c_interp 颜色插值(Color interpolation)
d_interp 溶解插值(Dissolve interpolation)
lod 细节层次(Level of detail)
usemtl 材质名称(Material name)
mtllib 材质库(Material library)
shadow_obj 投射阴影(Shadow casting)
trace_obj 光线跟踪(Ray tracing)
ctech 曲线近似技术(Curve approximation technique)
stech 表面近似技术 (Surface approximation technique)
OBJ文件不包含面的颜色定义信息,不过可以引用材质库,材质库信息储存在一个后缀是mtl的独立文件中。关键字mtllib即材质库的意思。
材质库中包含材质的漫射(diffuse),环境(ambient),光泽(specular)的RGB(红绿蓝)的定义值,以及反射(specularity),折射(refraction),透明度(transparency)等其它特征。
usemtl指定了材质之后,以后的面都是使用这一材质,直到遇到下一个usemtl来指定新的材质。
我给你来一段吧 自己写的 给分啊
先写一个从字符串生成任何类型的对象的函数
public object stringToObject(string str,Type objectType)//传递两个参数,一个是字符串含有每个属性的属性名和值对,属性和值用冒号分隔,属性与属性用逗号分隔,另一个参数是要创建的对象的类型{string[] shuxing = strSplit(new char[] { ',' });//将字符串分解成 “属性:值”数组
for (int i = 0; i < shuxingLength; i++){shuxing[i]= shuxing[i]Replace(\, );
}//去掉字符串的双引号
object obj = SystemActivatorCreateInstance(objectType); //使用反射动态创建对象
PropertyInfo[] pis =obj GetType()GetProperties(BindingFlagsPublic|BindingFlagsInstance);//获得对象的所有public属性
if (pis != null)//如果获得了属性
foreach (PropertyInfo pi in pis)//针对每一个属性进行循环{for (int i = 0; i <shuxingLength; i++)//检查字符串中的所有“属性:值”列表{if (shuxing[i]Split(new char[] { ':' })[0] == piName)//如果对象的属性名称恰好和字符串中的属性名相同{Type proertyType= piPropertyType; //获得对象属性的类型
piSetValue(obj, ConvertChangeType(shuxing[i]Split(new char[] { ':' })[1],proertyType), null);
//将字符串中的字符串类型的“值”转换为对象属性的类型,并赋值给对象属性}}}return obj;}然后调用这个函数
定义一个学生类class stu{string _name;int _age;public string name
{get{return _name;}
set {_name=value;}}public int age{get { return _age; }
set { _age = value; }}}pageload里面可以使用下面方法创建stu对象了
由于使用了反射技术需要导入名字空间 using SystemReflection;
using using SystemReflection;
。。。。。。。
以上就是关于犀牛导出obj参数设置全部的内容,包括:犀牛导出obj参数设置、obj文件的OBJ文件的基本结构、如何获取一个对象的所有属性(c#)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)