搜档网
当前位置:搜档网 › ogre 脚本 完全说明

ogre 脚本 完全说明

ogre  脚本  完全说明
ogre  脚本  完全说明

Ogre学习记录

2008-04-21 09:16 3213人阅读评论(3) 收藏举报blend脚本border汇编网格scroll

1:设计初衷

它设计初衷是完全跨平台的。抽象的接口隐藏了平台相关的细节。

它设计初衷是大幅度支持扩展的。支持多种场景类型,独立出平台和3D接口限制。

2:基本类结构关系

Roo:对象为一切的入口,它负责创建Ogre的所有基础元素,三大基础元素大致包括:场景管理器,绘制系统,资源管理器。

场景管理器:场景节点,动态对象。

资源管理器:资源组管理,资源管理

渲染模块:硬件缓冲区管理,渲染系统,渲染窗口

3:关键词

Root::Ogre系统入口,程序一开始就应当创建,最后释放,它帮助我们获得其他元素的指针。甚至包括StartRender()

RenderSystem::渲染系统。是对3D渲染API的一个封装。一般来说无需手工调用,场景管理器对对其进行控制,只有在实现一些特殊需要的时候,可以获取使用。SceneManager:负责对整个场景中内容的创建和管理。包括静态地形场景,摄象机,动态对象,光线,材质等都归属其管理。场景管理器根据室内室外等渲染管理进行了不同类型的优化,在创建时可以传参进行选择。

ResourceGroupManager:资源组管理器包含多种的资源管理器,例如纹理,网格Mesh 等的资源加载管理器,他们各司其职管理其所负责的资源数据对象。和渲染系统一样,大多数情况下他们会被自动调用的进行资源加载,我们仅需要做的就是

Root::getSingleton().addRessourceLocation()告诉Ogre从哪儿加载资源即可,除非个别特殊需求,我们动态的手工控制时候可以TextureManager::getSingleton()获取相应的资源管理器进行处理。

Mesh对象:就是一个具体的模型,而在一些情况下,Mesh对象仅指那些能够移动的对象,那些静态对象即不属于Mesh对象之列。Ogre有自己的一套定义的Mesh结构,即.mesh,该文件格式可以被网格工具编辑。

Entity实体:是一个可移动的对象实例。和Mesh的不同是,实体包括网格,但若网格未和场景结点绑定起来,则不可使用该实体。我们可以修改场景结点来获得实体的修改,但此时Mesh实际是没有变化的。注意:实体是允许有子实体的,网格也一样有子网格。每一个子网格可以有自己的材质。相关函数如下:SceneManager::CreateEntity()由场景管理器去创建实体对象,Entity::GetSubEntity()获取子实体指针,再SetMaterialName()修改材质。

材质:它是由资源管理器管理,但在场景管理器中也保存着一份材质的列表。它的属性有默认的,SceneManager::GetDefaultMaterialSetting()函数可以获取其默认属性,当然也可以修改。值得注意的是,OGRE允许在程序运行时,通过材质脚本对材质进行设置。Overlays层:一般是拿来做一些不接收用户交互信息的UI面层的。当然游戏中也可以设置一些层元素作为游戏内容,例如飞机驾驶舱,不接受任何用户交互信息,并且要求最前端显示。层有一个专门的层管理器,它负责层的创建释放等工作。每个层有自己的一个Z深度信息,通过它进行遮挡关系的计算。另外,每几个层可以分为一个小组进行统一控制,这个在Ogre中被称为层容器OverlayContainer。每个层可以进行独立的旋转缩放等功能。它允许是2D或3D。Ov erlayManager::getSingleton().createOverlayElement(“Panel”, “myNewPanel”)。

4:Ogre的脚本

1:材质脚本。在资源组管理器初始化完毕时,装载材质脚本,OGRE会自动的在组相关的资源位置查找”.materal”扩展名的文件,并对这些脚本进行语法解析。手动解析也可以MaterialSerializer::parseScript()但是注意的是:解析脚本时并没有对脚本中定义的全部纹理等资源进行加载。所以,在我们访问一个材质的时候,一定要确保它已经装载,或者,我们手动将此材质Load()一次再进行访问。另外,材质名必须唯一,且不可有”:”号。

格式:以{},空格,//作为标识符。

// 后跟注释,不支持多行注释。

{} 之间代表为一个解析单元

每一个material XXX 代表是一个材质单元。其中,每一个technique代表一个材质渲染手法,pass是每个渲染通路模式,texture_unit则是一个纹理单元。

一个材质脚本允许有多个渲染手法技术,一个渲染手法技术中允许有多个渲染通路模式,一个渲染通道允许有多个纹理单元。

渲染手法技术Techinique:

一个“渲染手法技术”就是一个单独的渲染物体的方法。多个技术的存在原因是为适用不同的显卡以及根据远近关系对一个物体进行不同的渲染。

技术的排列需要一定顺序,一般来说,最常用最的技术放在脚本最前面,

格式为:Techinique 技术名

不命名的技术默认会以其序列号进行命名,注意,技术名不可重复。

方案技术scheme:

因为我们对不同的显卡标准或根据某中不同的需求,设计出不同的技术,每种技术所适用的环境方案需要我们指出。

格式为:scheme 方案名

默认的方案是default,若我们某一个技术适用于开启hdr,Shader3.0的方案,我们只需对该技术设置方案为scheme hdr_open_shader_3_0 即可。

细节层次索引lod_index:

每一个技术都必须对应一个细节层次索引。一般来说,默认的都是0,即最近最优秀的渲染技术,当我们需要对远处细节进行渲染时,则设置这个值吧。

格式为:lod_index 数值层级

虽说lod的数值层级是从0-65535,一般设置2-4层就差不多了吧。因为技术有一定的排列顺序,所以,我们一般是将index大的技术放在后面。

细节层次距离lod_distances:

这里指定使用不同的细节层次的距离值,注意,该属性必须在所有的技术块外面进行声明指定。

如例子中所标识:lod_distance 200 就代表,在0-200这个距离内,我们使用细节层次为0的技术,在200以上的则使用细节层次为1的技术

Lod_distance 200 700.5 则表示在0-200时我们使用细节0,200-700.5这段距离使用细节1的材质技术,700.5以上使用细节2的材质技术。200和700.5间使用空格间隔。

所以技术的排列顺序通常为这样

Material MyTestMaterial

{

lod_distances 200

Technique Lod_0_Hdr_Open_Shader_3_0

{

Lod_index 0

Pass 0

{

Texture_unit

{

//…..

}

Texture_unit

{

//…..

}

}

Pass 1

{

Texture unit

{

// ….

}

}

}

Technique Lod_0_Hdr_Close_Shader_1_0

{

Lod_index 0

Pass

{

Texture_unit

{

//…..

}

Texture_unit

{

//…..

}

}

}

Technique Lod_1_Hdr_Open_Shader_3_0

{

Lod_index 1

Pass

{

Texture_unit

{

//…..

}

Texture_unit

{

//…..

}

}

}

Technique Lod_1_Hdr_Close_Shader_1_0

{

Lod_index 1

Pass

{

Texture_unit

{

//…..

}

Texture_unit

{

//…..

}

}

}

}

Pass渲染通路:

再次强调一个概念:一个材质脚本,为了适应不同的显卡和LOD细节层次技术,我们允许有多个技术,为了加速充分的使用GPU,每个技术中同时又支持多通道的渲染,每个渲染

通道内,同时又允许有多个纹理单元。首先这个改变必须明确理解才能顺利的进行材质脚本的设计。

我们在“渲染通路”这层可以设置以下属性:

·ambient 材质的环境光反射系数

格式是ambient red green blue alpha

每个值要求为0.0-1.0之间,例如ambient 0.2 0.2 1.0 1.0代表每个顶点对环境光的反射系数。注意:若关闭了动态光照和纹理层的光照色彩混合的话,该项就不起作用了。默认值为全白

·diffuse 材质的漫反射系数

格式是diffuse red green blue alpha 其他同上。

·specular 材质的镜面反射系数

格式是specular red green blue alpha Shininess ,最后多了一个参数,是闪耀值,该值处于1-128之间。注意:若该值较大则会令人感到耀眼的反射。·emissive 材质自发光系数

格式是emissive red green blue alpha

·scene_blend

设置渲染通道和现有的渲染层内容混合方式。有预设的四种方式

格式为scene_blend add或scene_blend modulate/alpha_blend/colour_blend Add 是将渲染出的颜色和亮度一起叠加到渲染场景中,相当于“scene_blend one one”

Modulate 是将渲染输出的颜色叠加到渲染场景中,相当于”scene_blend

dest_colour zero”

alpha_blend 是将渲染输出的亮度叠加到渲染场景中,相当于”scene_blend

src_colour one_minus_src_colour”

colour_blend 是将渲染输出的alpha

值进行遮罩缓和。相当于”scene_blend src_alpha one_minus_src_alpha”

当然,我们也可以不使用预设的方式,进行自定义源和目标的混合因数

格式为scene_blend src_factor dest_factor

这样最终渲染出的颜色就是(渲染通道的结果* src_factor) + (渲染场景的颜色* dest_factor),其中src_factor dest_factor两个参数可选以下值

one

常数值1.0

zero

常数值0.0

dest_colour

已存在的像素颜色

src_colour

纹理像素颜色

one_minus_dest_colour

1 -(dest_colour)

one_minus_src_colour

1 -(src_colour)

dest_alpha

已存在的像素alpha值

src_alpha

纹理像素alpha值

one_minus_dest_alpha

1 -(dest_alpha)

one_minus_src_alpha

1 -(src_alpha)

例如:scene_blend one zero (代表渲染出的纹理完全覆盖其后的渲染场景,即渲染管道出来的纹理是完全不透明的) ?默认的混合模式也正是这种。

·depth_check

是否开启深度缓冲检测格式为depth_check on 或depth_check off

·depth_write

是否打开深度缓冲写入。格式为depth_write on 或depth_write off

默认的时候深度缓冲是打开的,个别时候我们需要渲染一系列透明物体的关系时候,则将其关闭。

·depth_func

写入象素前的深度比较函数。格式为depth_func compareFun

其中compareFun可以取下面值之一。

always_fail

永远不向渲染目标写入像素

always_pass

总是将像素写入渲染目标

less

如果将要写入的像素的深度小于现在缓冲区内容的深度,则写入

less_equal

如果将要写入的像素的深度小于等于现在缓冲区内容的深度,则写入

equal

如果将要写入的像素的深度等于现在缓冲区内容的深度,则写入

not_equal

如果将要写入的像素的深度不等于现在缓冲区内容的深度,则写入

greater_equal

如果将要写入的像素的深度大于等于现在缓冲区内容的深度,则写入

greater

如果将要写入的像素的深度大于现在缓冲区内容的深度,则写入

默认值是depth_func less_equal ,注意:当我们关闭深入缓冲检测的话,该函数无效。

·depth_bias

无法理解。不会用。

·alpha_rejection

对渲染管道的材质纹理进行alpha信息剪裁。格式为 alpha_rejection

compareFun value

其中value取值范围是0-255,例如alpha_rejection less_equal 122 则代表抛弃渲染管道中alpha值大于等于122的象素。附注:考虑到硬件兼容,Value最好是0-128之间。

·cull_hardware

硬件剪裁方式。格式为cull_hardware HCutFun

HCutFun枚举下列三种方式:clockwise / anticlockwise/ none

clockwise将逆时针的三角型都cut掉(即CUT镜头反面)

anticlockwise将顺时针的三角型都cut掉(即CUT镜头正面)

none 不做任何剪切。

默认为clockwise

·cull_software

软件剪裁方式。格式为cull_software SCutFun

SCutFun 枚举以下三种格式:back / front / none

实际上,这个和硬件裁减是类似的,不过,对于一些动态的物件建议不要开启该项,消耗很大。默认是back 剪裁。

·lighting

是否开启动态光照。格式为lighting on / off

注意:使用了顶点程序,此属性无效。动态光照一旦关闭,环境光反射,镜面反射光,放射光,阴影等属性均无效。默认为on

·shading

Ogre阴影模式。格式为shading flat/ gouraud/ phong

Flat不进行插值,每个平面的阴影都由该平面的第一个顶点色决定。

Gouraud 对平面上每个顶点颜色进行线形插入计算。

Phong 全平面使用顶点法线向量。效果好,代价高,部份硬件无法支持此属性。

默认为:gouraud

·polygon_mode

栅格化方式。格式为polygon_mode solid/ wireframe/ points

面,线,点的栅格化。默认当然是面solid模式。

·fog_override

是否开启雾化。fog_override true/false

当fog_override true的时候就需要顺序跟出以下参数

雾的type: none 无雾。相当于fog_override false

Linear 线性雾。从start到end之间有雾

Exp 几何方次性雾。受浓度density 影响

Exp2 几何二次方增加。受浓度density 影响

雾的颜色color: RGB三种颜色值。0.0-1.0之间

雾的浓度density:设置几何方次性雾的浓度。对线形雾不影响,但也必须写上进行占位。

雾的起始位置start :对非线性雾无效,但必须写上占位。

雾的结束位置end : 对非线性雾无效,但必须写上占位。

例如:fog_override true exp 1 1 1 0.002 100 10000 开启几何次方雾。颜色为1,1,1白色,浓度为0.002(若是线性则代表,离镜头100至10000之间的距离有雾)

·colour_write

是否关闭渲染通路的颜色写入功能。colour_write on/off

该功能一旦关闭,则代表渲染通路不可输入任何的颜色渲染。仅在初期初始化深度缓冲区时个别时间有用。默认为开on

·max_lights

此渲染通路最大光源数量。一般使用默认为8 格式为max_lights 8

·start_light

·iteration

是否对渲染通路进行迭代渲染。默认为仅渲染一次,格式为Iteration once

Iteration 5 代表本渲染通路将被重复执行5次渲染。

Iteration once per_light point 则代表本渲染通道将每个光源点进行一次渲染。

Iteration 5 per_light point则代表本渲染通道将每个光源点进行5次渲染。·point_size

·point_sprites

·point_size_attenuation

·point_size_min

·point_size_max

Texture_unit 纹理单元

我们在PASS渲染通道处已经进行了一次整体的渲染环境设置,然而,在每个纹理单元,我们还可以对单独的纹理进行渲染属性设置。

·texture_alias

设置一个纹理的别名。类似于技术的别名。格式: texture_alias 纹理别名

默认该别名就是纹理单元的名字。

·texture

本层要使用的静态纹理图象名字。可以简单的格式为

Texture xxx.jpg (注意:纹理文件名禁止有空格)也可对其属性进行详细的设置。

如下

Texture xxx.jpg 2d 8 none PF_A8R8G8B8

2d是装载的纹理类型,类型实际上包括1d(1象素的纹理点),2d(纹理面,默认也是该项),3d(3D带深度的纹理),cubic(有些类似天空盒式的贴在立方体内侧6个2D纹理,但是仅可贴同一种纹理,不如使用cubic_texture)

8 是MipMap的层级,默认是unlinited,代表可以无限的对纹理进行mipmap,

我们这里设置为8代表生成8个层级递减的MIPMAP。注意:若多个材质脚本中使用同一个纹理,切记他们的mipmap数量必须一致。

None 这项是我们指定的单独的透明通道做为alpha进行装载,默认的为none,表示以红色作为alpha通道。

PF_A8R8G8B8纹理格式,常用的有

PF_R5G6B5,PF_A4R4G4B4,PF_A8R8G8B8,PF_X8R8G8B8等。

·anim_texture

与上面的texture对应,是用于活动的纹理层,即动态图象。注意,这里不是使用默认的保存好的.gif动画,而是导入多桢图,设置好桢之间的间隔时间。这里我们有两种方法。

一种是按照Ogre内部规定对动画的纹理命名:xxx_0.jpg xxx_1.jpg xxx_2.jpg 这样以0为首,加下划线递增命名,这样我们调用时会比较方便,这样便可以了Anim_texture xxx.jpg 3 2.2 即代表xxx_0.jpg这样命名的纹理有3张,间隔时间为2.2秒。

另一种是非标准的纹理命名,则需要我们如下写:

Anim_texture 1.jpg flame2.jpg xxx_3.png hit4.tga 2.2 直接以空格间隔标示逐个标示出每一桢的纹理即可。

注意:2.2是每桢间的间隔时间,若设置为0,则不会自动进行桢画面切换,需要我们代码中手工控制了。

·cubic_texture

创建一个立方体纹理。这个一般用于反射映射和天空盒中。其格式和动态纹理一样,有两种方式,一种是Ogre制定的规范,我们调用就更加简单,如下

Cubic_texture skybox.jpg combinedUVW

我们仅提供一个基础的纹理名,此时OGRE会默认的去查找skybox_fr.jpg, skybox_bk.jpg, skybox_up.jpg, skybox_dn.jpg, skybox_lf.jpg, skybox_rt.jpg这些纹理。

第二中方式则是按照“前后上下左右”的顺序将这些纹理罗列出来。

最后一个参数需要设置为combinedUVW或separateUV, combinedUVW会将纹理组合到一个立方体纹理映射中,带有UVW三维纹理坐标,适合做反射映射。

而separateUV仅仅保存2D的UV坐标,适用于天空盒。

·tex_coord_set

因为一个Mesh网格允许有多套纹理坐标集,我们在这里设置使用哪套坐标集。

格式为tex_coord_set 3 (使用编号为3的坐标集)

默认为tex_coord_set 0

·tex_address_mode

纹理寻址模式。即当纹理UV值大于1.0时的纹理处理方法。参数有以下几种枚举选择:

Wrap 会将所有UV值大于1.0的值设置为0.0,纹理会被重复连续绘制。

Clamp 会将所有UV值大于1.0的值设置为1.0,这样的话就相当于在模糊边界。

Mirror 会当UV值等于1.0的时候,将纹理反转后连续绘制。

Border 超过1.0的UV都会被设置为边界色,就是描边效果。此项可设置

tex_border_colour属性。

·tex_border_colour

和上一属性对应,设置纹理边界色,仅对Border纹理寻址有效。

格式:tex_border_colour RGBA(0.0 – 1.0取值)

·filtering

纹理过滤形式:我们可以使用其预定的四种基本类型,包括

None 不进行纹理过滤

Bilinear 进行双线性纹理过滤。就是对mipmap进行挑选过滤,但是不对mipmap 各个级别之间进行过滤

Trilinear 进行三线性纹理过滤。将最近的两个mipmap一起进行过滤。

Anisotropic 各向异性纹理过滤。使用该项,则你必须设置其max_anisotropy值。

默认为bilinear。

·max_anisotropy

最大各相异性程度偏差值。根据硬件不同一般限制为8或者16

默认为max_anisotropy 1

·mipmap_bias

我们在Pass通道时已经允许设置mipmap纹理Lod运用层级以及适用的距离。

在纹理单元这层级我们可以重新对其进行调整。格式为

Mipmap_bias -3 后面的整数代表在所有的范围内强制使用增大或缩小的mip级别。-3代表,在所有范围内强制使用更大3级的mip纹理。

默认是不进行层级偏移:mipmap_bias 0

·colour_op

简单的纹理混合方式,我们可以使用预定义的4项枚举:

Replace 不处理,用当前的纹理直接替换掉后面的所有颜色。覆盖式。

Add 将当前纹理色和后面的渲染颜色进行加法处理。

Modulate 将当前纹理色和后面的渲染颜色进行乘法处理。

Alpha_blend 将当前纹理和后面的纹理进行alpha颜色混合。

默认为colour_op modulate 当前纹理色和后面颜色进行乘法混合。

·colour_op_ex

高级的纹理混合模式,可以详细的指定混合系数和效果,但个人不推荐使用。效率消耗较大,且受不用的硬件限制性大,使用默认支持的4种混合模式可以了。

·colour_op_multipass_fallback

当上面一个colour_op_ex设置要求过高,硬件无法支持多纹理混合时,则不得不调用该项进行多通路混合渲染。若我们使用的是colour_op预设置的4种纹理混合模式,则无需在此处理,OGRE底层已经做了完善的处理。

·alpha_op_ex

同colour_op_ex,不推荐使用。

·env_map

设置环境映射效果。该项可以使用预定义的五个选项

Off 关闭环境映射反射。默认即本项。

Spherical 开启球面环境映射。它需要一个单独的纹理,该纹理进行周围反射的记录。

Cubic_reflection 开启平面环境映射。

·scroll

静态纹理偏移。个人感觉这个函数的存在意义完全是拿来弥补美术的小BUG。

或者是个别情况下,事件响应时调用对纹理的修改?

格式如下:scroll x y

·scroll_anim

动态纹理偏移。……针对上一功能的补足。给纹理层一个移动速度进行偏移。

格式为scroll_anim xspeed yspeed

·rotate

以固定角度静态旋转一个纹理。和scroll没什么区别。格式如下rotate angle 注:angle是逆时针旋转的角度数

·rotate_anim

动态旋转一个纹理。格式为rotate_anim 3 代表每秒旋转3次360度。

·scale

静态缩放一个纹理。格式为scale x_scale y_scale。

·wave_xform

制作类似于水面波纹性质的专用函数。可以制造出一个类似于波状的动态纹理变化形式。

格式: wave_xform

示例: wave_xform scale_x sine 1.0 0.2 0.0 5.0

xform_type

scroll_x

变动x滚动值

scroll_y

变动y滚动值

rotate

变动旋转值

scale_x

变动x比例值

scale_y

变动y比例值

wave_type

sine

典型的正弦波,在最小值和最大值之间平稳地循环。

triangle

以恒定的速度增加减少的有角度的波,在极值时立即改变。

square

最大是波长的一半,最小是瞬时转换之间的停止时间。

sawtooth

经过一段时间,从最小逐渐持续增加到最大,最后立即回到最小。

inverse_sawtooth

经过一段时间,从最大逐渐持续减少到最小,最后又立即返回最大。::base 基值,如果amplitude > 0就是指最小值,amplitdue < 0就是指最大值。

frequency

波每秒重复的次数,即速度。

phase

波开始的偏移量。

amplitude

波的大小。

波的输出范围在{base, base+amplitude}。所以,以在x方向调整纹理为例,沿正弦波方向从1(标准值)调整到5,即表示每5秒一个周期(每秒0.2个波)。

·transform

为纹理提供一个4*4矩阵以直接替代上面的旋转,缩放,移动等一系列变化。

格式为transform m00 m01 m02 m03 m10 m11 m12 m13 m20 m21 m22 m23 m30 m31 m32 m33

·binding_type

设置绑定类型。该纹理是绑定到片断处理单元还是顶点处理单元。格式为:Binding_type fragment / vertex

默认为绑定片断处理单元。

·content_type

设置纹理内容的来源类型。格式为content_type named / shadow

默认是为named,表示纹理单元图片来源于texture,cubic_texture,anim_texture 之一,但个别时候我们需要使用阴影纹理,则此时可以设置为shadow

注:除去上面的纹理属性设置之外,假若我们需要更高级的纹理属性支持,可以使用外部纹理源。

顶点程序和片断程序声明:

假设我们在材质脚本中需要使用顶点程序或者片段程序,那么,类似于函数声明调用一样,我们必须在调用它之前先对其进行声明定义。

假若调用点都在一个.meterial脚本内还好,我们只需要在调用处的上面进行声明定义,但,假若多个脚本都调用一段顶点程序,我们就需要将这段顶点片断程序独立出任何的.meterial 脚本之外,独立编写一个 .program 格式的脚本,在这个脚本中进行定义,这样的话,这个外部定义的顶点片断程序就会顺利的在任何位置上被调用读取。

个人推荐所有的顶点程序都独立为一个脚本,可以更大程度上方便我们整理。

顶点程序本身既可以是一些低级语言,例如vs_1_1语法规格写的汇编代码,也可以是HLSL,GLSL,CG,个人更推荐使用后者。

一个最基本的片断程序要求有以下几个要点说明:

vertex_program myVertexProgram asm

{

source myVertexProgram.asm

syntax vs_1_1

}

1:在头部给出程序名字,之后说明程序类型。“asm”

2:指示出资源来自何处。” source”

3:指示出语法规则。“vs_1_1”

我们可以通过Ogre的GPU管理器来获取当前显卡支持的语法列表。GpuProgramManager::GetSingleton().getSupportedSyntax()来获得。

一般显卡支持的语法规则如下:

vs_1_1

这是一种DirectX顶点渲染器汇编语法。

支持显卡有:ATI Radeon 8500,nVidia GeForce 3。

vs_2_0

另一种DirectX顶点渲染器汇编语法。

支持显卡有:ATI Radeon 9600,nVidia GeForce FX 5系列。

vs_2_x

另一种DirectX顶点渲染器汇编语法。

支持显卡有:ATI Radeon X系列,nVidia GeForce FX 6系列。

vs_3_0

另一种DirectX顶点渲染器汇编语法。

支持显卡有:nVidia GeForce FX 6系列。

arbvp1

这是OpenGL标准顶点程序汇编格式。大体上相当于DirectX vs_1_1。

vp20

这是一种nVidia特有的OpenGL顶点渲染器语法,是vs 1.1的一个超集。

vp30

另一种nVidia特有的OpenGL顶点渲染器语法。它是vs 2.0的一个超集,被nVidia GeForce FX 5系及以上系列支持。

vp40

另一种nVidia特有的OpenGL顶点渲染器语法。它是vs 3.0的一个超集,被nVidia GeForce FX 6系及以上系列支持。

ps_1_1, ps_1_2, ps_1_3

DirectX像素渲染器(例如片断程序)汇编语法。

支持显卡:ATI Radeon 8500,nVidia GeForce 3。

注解:对于ATI 8500,9000,9100,9200硬件,也可用于OpenGL。ATI 8500到9200不支持arbfp1但是确实支持OpenGL的atifs扩展,非常类似DirectX的ps_1_4。OGRE 有针对atifs编译器的ps_1_x模块,当在ATI硬件上使用ps_1_x时,它会自动执行。

ps_1_4

DirectX像素渲染器(片断程序)汇编语法。

支持显卡有:ATI Radeon 8500,nVidia GeForce FX 5系列。

注解:对于ATI 8500,9000,9100,9200硬件,此项也可用于OpenGL。ATI 8500到9200不支持arbfp1但是支持OpenGL的atifs扩展,功能上非常类似于DirectX中的ps_1_4。OGRE有针对atifs编译器的ps_1_x模块,当在ATI硬件上使用ps_1_x时,它会自动执行。ps_2_0

DirectX像素渲染器(片断程序)汇编语法。

支持显卡有:ATI Radeon 9600,nVidia GeForce FX 5系列。

ps_2_x

DirectX像素渲染器(片断程序)汇编语法。基本上是带有更多指令的ps_2_0。

支持显卡有:ATI Radeon X系列,nVidia GeForce FX 6系列。

ps_3_0

DirectX像素渲染器(片断程序)汇编语法。

支持显卡有:nVidia GeForce FX 6系列。

ps_3_x

DirectX像素渲染器(片断程序)汇编语法。

支持显卡有:nVidia GeForce FX 7系列。

arbfp1

这是OpenGL标准片断程序汇编格式。大体上相当于ps_2_0,意味着不是所有支持DirectX 下的基本像素渲染器都支持arbfp1(例如GeForce3和GeForce4就都不支持arbfp1,但是它们都支持ps_1_1)。

fp20

这是一个nVidia特有的OpenGL片断程序语法,是ps 1.3的一个超集。它允许你为基本片断程序使用'nvparse'格式。实际上,它使用NV_texture_shader和NV_register_combiners 在GL下提供相当于DirectX's ps_1_1的功能,但是仅限于nVidia显卡。然而,因为ATI 显卡比nVidia早一步采用arbfp1,所以它主要用于像GeForce3和GeForce4系列的nVidia 显卡。你可以在https://www.sodocs.net/doc/af9789972.html,/object/nvparse.html找到更多有关nvparse的信息。

fp30

另一种nVidia特有的OpenGL片断渲染语法。它是ps 2.0的一个超集,被nVidia GeForce FX 5系列或更高级的显卡支持。

fp40

另一种nVidia特有的OpenGL片断渲染语法。它是ps 3.0的一个超集,被nVidia GeForce FX 6系列或更高级的显卡支持。

详细的语法编写,实在没有兴趣详细研究下去了。所以这里略过,我们需要知道的是,除了HLSL,GLSL,CG以外,还有一个Ogre自动识别处理的类型,unified可以统一的对程序定义,这样就可以依赖于渲染系统和硬件支持自动的选择渲染程序。

另外,材质拷贝技巧。

一般来说,我们游戏中大量的材质是雷同性很强的,假若大段的复制材质渲染模式,实在是非常不值得的体力劳动,所以对于一些只有微小改变的材质设置,推荐使用材质拷贝。

材质拷贝技巧1:

当两个材质完全一致时。直接类似于C++的继承的写法即可:

Material met1

{

Technique

{

Pass 0

{ … }

Pass 1

{ … }

}

}

Material met2 : met1

{

}

我们不需要做任何事情,met2就已经过去了met1的材质属性。

材质拷贝技巧2:

当我们向一个拷贝材质中添加新技术时。直接在新的材质脚本中声明新的技术即可。例:Material met2 : met1

{

Technique new

{

}

}

此时new这个技术就会默认的在其父类的默认命名为0的技术之后产生。不过值得注意的是,新创建的这个技术尽量命名,避免与父源类的技术名称发生冲突。

材质拷贝技巧3:

当我们想对拷贝材质已有的属性做一点点的改动时候,需要声明原有技术和通道,直接声明需要改动的属性即可。例:

Material met2 : met1

{

Technique 0 // 父类的技术并没有命名,默认是以索引为名,索引为0,所以这里填0,但是注意的是,一定要把这个0表示说明出来

{

Pass 1 // 父类中的0号技术中的命名为0的一个通道

{

max_lights 2 //修改该Pass中的最大光源属性为2

}

}

}

最常用的是修改一个渲染材质中的某一个纹理文件。我们可以这么做

Material met2 : met1

{

Technique 0 // 父类的技术并没有命名,默认是以索引为名,索引为0,所以这里填0,但是注意的是,一定要把这个0表示说明出来

{

Pass 1 // 父类中的0号技术中的命名为0的一个通道

{

Texture_unit TreeTexture

{

Texture NewTreeTexture.png

}

}

}

}

这样我们就将treetexture纹理单元中的纹理图片替换了,而其他的一切渲染属性都没有更改。

材质拷贝技巧4:

记得我们之前说纹理单元时候有强调过纹理有一个属性叫纹理别名吧。texture_alias。

我们看上面的例子,假若我们材质met1,和met2仅差一个纹理的区别的话,那么上面的写法也比较麻烦,我们有个更简单的方法,就是,在初次定义的时候,为纹理定义一个别名,之后我们假若需要换纹理,仅告诉Ogre脚本解释器,别名现在代表另一张纹理便可以了。例如:我们要渲染一张“漂亮的图“,在材质1中,“漂亮的图”代表1.png,材质2中,“漂亮的图”代表2.png,我们只要告诉Ogre,“漂亮的图”是哪张便可以了。例子如下:

Material met1

{

Pass 0

{

Texture_unit testTex

{

texture_alias DiffuseMap

texture defaultDiff.png

filtering trilinear

tex_coord_set 1

}

}

}

那么我们假若需要使用同样的技术和通道,仅修改纹理图片,我们可以简单到如下:Material met2

{

Set_texture_alias DiffuseMap NewChangedDiff.png

}

一句话便更换了别名DiffuseMap所指代的对象。直接达到更换纹理贴图的效果。

所以,我们尽量可能的为技术,通道,纹理单元手动设置名字,纹理资源尽量设置别名。

合成器Compositor

虽然在Ogre说明书上占了一定篇幅来说明他,很遗憾的是依旧无法理解这个概念名词,它的作用也很值得斟酌,在现有的资料来看,它的使用率极低,故不再加以研究。暂时,放弃。

粒子脚本

非常熟悉,不赘述。格式完全类似材质脚本,仅修改了属性关键字。

注意的是,Ogre中的粒子脚本中允许设置一些力学信息。

字体定义脚本

Ogre中字体最终就是一个Meterial对象,我们要获得这个对象可以有2种方法:

1:利用一个字体生成工具自己设计字体纹理

2:让Ogre生成一个基于trueType字体的字体纹理

无论使用哪种,都需要在 .fontdef 文件中对字体进行定义。

当我们使用现有的一个字体纹理,那么该脚本声明格式为:

MyFont // 字体名称,程序中调用时使用,自定义

{

Type image // 告知Ogre,我们使用的是字体纹理,不是tureType

Source XXX.png // 字体纹理文件名

Glyph A 1 3 14 14 // 告知Ogre,A这个字符在纹理中的位置是(1,3)到(14,14)之间。

3DMAX室内建模渲染流程

3DMAX建模渲染流程 一、概述 CAD图纸阶段 3DMAX建模阶段 v-Ray摄像机布置阶段 v-Ray材质参数调制阶段 v-Ray灯光环境布置阶段 渲染阶段 二、操作细则 1、CAD图纸阶段: a:将CAD平面布置图内的不必要家具清理掉,尽量只保留墙体结构。 b:导出图纸,另存为3DMAX建模用dwg文件。 c:找到目标房间,并记下窗高、台高、门高、房高等数据。 2、3DMAX建模阶段: 1:设置3DMAX的系统单位为毫米。 2:导入事前制作好的CAD图纸。全部选择—结组—使用移动命令设置模型的X Y Z 轴为0 -冻结。

3:右键单击捕捉命令,进行捕捉设置,选择顶点捕捉。 4:使用“线”命令,沿着目标房间内轮廓描边,在门口和窗口位置加点。 5:使用挤出命令挤出房高。并转化为可编辑多边形。 6:选择线层级—选择门口的两条线—右击—连接1条线。单击此线设置Z轴的数值为CAD 中门高值。窗口同理。设置好台高和窗高。 7:选择面层级—选择窗口所在的面,使用挤出命令挤出厚度。 8:选择元素层级—选择整个模型—右键—反转法线—再右击—选择对象属性。再窗口中找到“背面消隐”选项,并在前面打勾。 9:F3—S(打开捕捉)—L(左视图)—按住Ctrl+右键选择线—勾出门的轮廓—使用挤出命令制作门口的包边。 10:勾出窗口的轮廓—转换为可编辑多边形—线层级—“连接”上下两条边制作窗的轮廓—边界层级—使用“插入”命令做出窗框的宽度—面层级—“挤出”窗框的厚度。 11:勾出地面轮廓,使用倒角剖面命令拾取踢脚线剖面。如果方向不对在修改器中选择剖面层级,使用旋转命令旋转到合适位置。同样的方法制作吊顶。 12:选择面层级,分别选择地面,顶面。使用分离命令,并赋予材质,方便后期渲染。 13:在网络中找到需要的模型并下载,使用导入—合并,导入下载好的模型到自己的模型中,并放到合适位置。 14:用SKETCHUP做出造型简单的模型,导出为3DS文件,并导入到3DMAX中。放到合适位置。

正确的VRay动画渲染流程

在这里我直接简洁明了地列出正确的渲染流水线: 第一大类:仅仅是摄像机运动的静态场景动画的渲染 type one: IRmap+BruteForce(QMC) 的组合: 第一步(单帧调试阶段): 调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量 第二步(动画前数据计算阶段,俗称跑光): 1.保持次级引擎BruteForce(QMC)开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程 2.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画的IRmap 3.打开IRmapViewer观察计算完成的IRmap采样点分布情况,将采样点不足的部分,缺失采样点的部分,通过手动补光方式叠加并补全,得到最终准备动画渲染的IRmap文件(这一环节非常重要) 第三步(渲染动画阶段) 1.IRmap模式改为from file并读入之前准备好的最终IRmap文件 2.将次级引擎关闭,即设置为none(因为所有计算结果已经存入在了IRmap的每个采样点中) 3.将IRmap设置中的interplation sample设置为10-15 (最终渲染时插值采样不能过大,否则将导致闪烁) 4.渲染! type two: IRmap+LightCache 第一步(单帧调试阶段): 调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量 第二步(动画前数据计算阶段,俗称跑光): 1.保持次级引擎LightCache开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程 2.设置LightCache模式为SingleFrame方式,并在选项中去除勾选"Store direct light"这个选项(这点非常重要,去除这个选项将极大地避免Lightcache产生的GI闪烁) 3.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画

VRay渲染设置面板详解

VRay渲染设置面板详解 第一课:安装和操作流程 Vray的安装 Vray的简介: VRay是由著名的3DS max的插件提供商Chaos group推出的一款较小,但功能却十分强大的渲染器插件。VRay是目前最优秀的渲染插件之一,尤其在室内外效果图制作中,vray几乎可以称得上是速度最快、渲染效果极好的渲染软件精品。随着vray的不断升级和完善,在越来越多的效果图实例中向人们证实了自己强大的功能。 VRay主要用于渲染一些特殊的效果,如次表面散射、光迹追踪、焦散、全局照明等。可用于建筑设计、灯光设计、展示设计、动画渲染等多个领域VRay渲染器有Basic Package 和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 Vray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为Irradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。 5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍增值),至直合适为止。

3dmax-vray渲染流程的方法

3dmax-vray渲染流程的方法 一、建模方法与注意事项 1、四方体空间或多边型空间,先用CAD画出平面,吊顶图,立面图。 进入3D,导出CAD,将CAD图绝对坐标设为:0,0,0用直线绘制线条,然后挤出室内高度,将体转为可编辑多边形。然后在此几何体上进行以面为主开门,开窗等, 2、顶有花式就以顶的面推出造型,再将下部做出地坪, 3、关键的容量忽视的: A、不管怎样开门......做吊顶......都要把几个分出的面当着一个整体空间,不要随地左右移动.否则会造成漏光。 B、由于开洞......会在面上产生多余的线尽量不要删除,会造成墙面不平有折光和漏光.如室内空间模型能做好,就完成了建模工程了。 二、室内渲染表现与出图流程 1、测试阶段 2、出图阶段 三、Vray渲染器的设定与参数解释 1、打开渲染器F10或 2、调用方法。 3、公共参数设定 宽度、高度设定为1,不勾选渲染帧窗口。

4、帧绶冲区 勾选启用内置帧绶冲区,不勾选从MAX获分辨率。 5、全局开关(在设置时对场景中全部对像起作用) ①置换:指置换命令是否使用。 ②灯光:指是否使用场景是的灯光。 ③默认灯光:指场景中默认的两个灯光,使用时必须开闭。 ④隐藏灯光:场景中被隐藏的灯光是否使用。 ⑤阴影:指灯光是否产生的阴影。 ⑥全局光:一般使用。 ⑦不渲染最终的图像:指在渲染完成后是否显示最终的结果。 ⑧反射/折射:指场景的材质是否有反射/折射效果。 ⑨最大深度:指反射/折射的次数。 ⑩覆盖材质:用一种材质替换场景中所有材质。一般用于渲染灯光时使用。 ⑾光滑效果:材质显示的最好效果。 6、图像采样(控制渲染后图像的锯齿效果) ①类型: Ⅰ、固定:是一种最简单的采样器,对于每一个像素使用一个固定的样本。 Ⅱ、自适应准蒙特卡洛:根据每个像素和它相邻像素的亮度异产生不同数量的样本。对于有大量微小细节是首选。最小细分:定义每个像素使用的样本的最小数量,一般为1。最大细分:定义每个像素使用的样本的最大数量。 Ⅲ、自适细分:如果场景中细节比较少是最好的选择,细节多效果不好,渲染速度慢。 ②抗锯齿过滤器: Ⅰ、Area:Ⅱ、Catmull-Rom:Ⅲ、Mitchell-Netravali: 7、间接照明(灯光的间接光线的效果)

正确的Vray动画渲染流程.

(转载)正确的Vray动画渲染流程(2010-06-23 00:07:16)转载▼ 标签:杂谈分类:CG教程 关于使用Vray来进行动画渲染的方法讨论在各大论坛中都多次被反复提及,但仍有很多误区,我不打算一一列举,在这里我直接简洁明了地列出正确的渲染流水线: 第一大类:仅仅是摄像机运动的静态场景动画的渲染 type one: IRmap+BruteForce(QMC) 的组合: 第一步(单帧调试阶段): 调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量 第二步(动画前数据计算阶段,俗称跑光): 1.保持次级引擎BruteForce(QMC)开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程

2.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画的IRmap 3.打开IRmapViewer观察计算完成的IRmap 采样点分布情况,将采样点不足的部分,缺失采样点的部分,通过手动补光方式叠加并补全,得到最终准备动画渲染的IRmap文件(这一环节非常重要) 第三步(渲染动画阶段) 1.IRmap模式改为from file并读入之前准备好的最终IRmap文件 2.将次级引擎关闭,即设置为none(因为所有计算结果已经存入在了IRmap的每个采样点中) 3.将IRmap设置中的interplation sample设置为10-15 (最终渲染时插值采样不能过大,否则将导致闪烁)

4.渲染! type two: IRmap+LightCache 的组合: 第一步(单帧调试阶段): 调试好DMC sampler核心管理器的参数在单帧下已获得良好的质量 第二步(动画前数据计算阶段,俗称跑光): 1.保持次级引擎LightCache开启,勾选全局设置的Don't Render Image以跳过不必要的渲染计算过程 2.设置LightCache模式为SingleFrame方式,并在选项中去除勾选"Store direct light"这个选项(这点非常重要,去除这个选项将极大地避免Lightcache产生的GI闪烁) 3.根据摄像机运动情况预估隔帧数量,使用MultiFrame increamental模式,计算完全部动画的

vray渲染教程(全_精_详)

第一课:VRay的安装和操作流程 一、V ray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍增值),至直合适为止。 ③打开反射、折射调整主要材质 6根据实际的情况再次调整场景的灯光和材质 7渲染并保存光子文件 ①设置保存光子文件 ②调整lrradiance map(光贴图模式),min rate(最小采样)和max rate(最大采样)为-5,-1或-5,-2或更高,同时把[准蒙特卡洛算法] 或[灯光缓冲模式] 的细分值调高,正式跑小图,保存光子文件。 8 正式渲染 1)调高抗鉅尺级别, 2)设置出图的尺寸, 3)调用光子文件渲染出大图 第二课:VRay常用材质的调整 一、VRayMtl材质 VRayMtl(VRay材质)是VRay渲染系统的专用材质。使用这个材质能在场景中得到更好的和正确的照明(能量分布), 更快的渲染, 更方便控制的反射和折射参数。在VRayMtl里你能够应用不同的纹理贴图, 更好的控制反射和折射,添加bump (凹凸贴图)和displacement(位移贴图),促使直接GI(direct GI)计算, 对于材质的着色方式可以选择BRDF(毕奥定向反射分配函数)。详细参数如下:

VRay的安装和操作流程

第一课:VRay的安装和操作流程 一、Vray的安装 二、Vray的简介: VRay是由著名的3DS max的插件提供商Chaos group推出的一款较小,但功能却十分强大的渲染器插件。VRay是目前最优秀的渲染插件之一,尤其在室内外效果图制作中,vray几乎可以称得上是速度最快、渲染效果极好的渲染软件精品。随着vray的不断升级和完善,在越来越多的效果图实例中向人们证实了自己强大的功能。 VRay主要用于渲染一些特殊的效果,如次表面散射、光迹追踪、焦散、全局照明等。可用于建筑设计、灯光设计、展示设计、动画渲染等多个领域 VRay渲染器有Basic Package 和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 以下是Vray的作品欣赏

三、Vray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍

Vray高级渲染器使用方法

第一课:VRay操作使用指南 一、V ray的安装 二、V ray的简介: VRay是由著名的3DS max的插件提供商Chaos group推出的一款较小,但功能却十分强大的渲染器插件。VRay是目前最优秀的渲染插件之一,尤其在室内外效果图制作中,vray几乎可以称得上是速度最快、渲染效果极好的渲染软件精品。随着vray的不断升级和完善,在越来越多的效果图实例中向人们证实了自己强大的功能。 VRay主要用于渲染一些特殊的效果,如次表面散射、光迹追踪、焦散、全局照明等。可用于建筑设计、灯光设计、展示设计、动画渲染等多个领域 VRay渲染器有Basic Package 和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 以下是V ray的作品欣赏

三、V ray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5,

同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍增值),至直合适为止。 ③打开反射、折射调整主要材质 6根据实际的情况再次调整场景的灯光和材质 7渲染并保存光子文件 ①设置保存光子文件 ②调整lrradiance map(光贴图模式),min rate(最小采样)和max rate(最大采样)为-5,-1或-5,-2或更高,同时把[准蒙特卡洛算法] 或[灯光缓冲模式] 的细分值调高,正式跑小图,保存光子文件。 8 正式渲染 1)调高抗鉅尺级别, 2)设置出图的尺寸, 3)调用光子文件渲染出大图 第二课:VRay常用材质的调整 一、VRayMtl材质 VRayMtl(VRay材质)是VRay渲染系统的专用材质。使用这个材质能在场景中得到更好的和正确的照明(能量分布), 更快的渲染, 更方便控制的反射和折射参数。在VRayMtl里你能够应用不同的纹理贴图, 更好的控制反射和折射,添加bump (凹凸贴图)和displacement(位移贴图),促使直接GI(direct GI)计算, 对于材质的着色方式可以选择BRDF(毕奥定向反射分配函数)。详细参数如下: Basic parameters(基本参数) Diffuse (漫射)- 材质的漫反射颜色。你能够在纹理贴图部分(texture maps)

Vray-最全笔记 及渲染过程

第一章:vray基础 一、vray,渲染面板基础参数; 1、vray全局设置 几何体,间接照明,兼容性,光线追踪﹍一般不用动。在灯光中去掉“默认灯光”(如果想提高测试速度:a、在材质中去掉反射折射。b、覆盖材质:用一种简单材质代替场景中的所有物体。) 2、vray 图像采样(反锯齿) 第一种是固定采样器,它的值为1时,效果与QMC相同,但速度要慢。 第二种是adapative QMC 采样器,自适应QMC,有一个最小细分和最大细分.在平坦区域用最小细分值.在起伏的地方用最大细分值。 1/2数值在速度和质量上还是比较平衡的,,而颜色阀值会影响噪点和速度,默认为0.1,当调到0.05时,噪点少一半,时间长一倍。 出高质量图用细分1/16 ,颜色阀值 0.01。在最小细分:调高比如到2,那么较细的线可以得到正确的渲染。从而提高出图质量。 第三种是自适应细分adapative subdivision

这是一个比较高级的采样器.有负值采样.在没有景深模糊等场景中比较好.因为它可以得到一个最快的渲染速度和最佳的渲染质量.但占用更多的内存但是在具有大量细节和模糊特效的场景他比其他两个采样器更慢而且效果更差 Adaptive subdivision同样是一个自适应的方法.虽然它在许多情况下非常快,但场景中有大量的光泽效果时会非常慢.它同样在渲染时使用更多的内存.若你的场景中有大块的平滑区域(例如一个室内有大块的白墙)时就使用这个采样器。 颜色阀值对速度影响挺大的,一般0.3----0.1之间选, 抗锯齿过滤器,一个模糊作用,一般去掉,一般为区域或一般出图时一般用Catmull-rom、Mitch-Netravali 3、GI 全局照明 勾选全局照明,将首次反弹调为“发光贴图” 二次反弹:倍增器值一般为0.7-0,9 引擎为“灯光缓存” 4、发光贴图:

VRay渲染超详细教程

第一课:VRay的安装和操作流程第二课:VRay常用材质的调整第三课:VRay的灯光照明技术 第四课:VRay的材质和贴图技术第五课:VRay产品展示渲染第六课:牛刀小试 第七课:VRay的物体和特效 第一课:VRay的安装和操作流程 一、Vray的安装 二、Vray的简介: VRay是由著名的3DS max的插件提供商Chaos group推出的一款较小,但功能却十分强大的渲染器插件。VRay是目前最优秀的渲染插件之一,尤其在室内外效果图制作中,vray几乎可以称得上是速度最快、渲染效果极好的渲染软件精品。随着vray的不断升级和完善,在越来越多的效果图实例中向人们证实了自己强大的功能。 VRay主要用于渲染一些特殊的效果,如次表面散射、光迹追踪、焦散、全局照明等。可用于建筑设计、灯光设计、展示设计、动画渲染等多个领域 VRay渲染器有Basic Package和Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package包含有几种特殊功能,适用于专业人员使用。 以下是Vray的作品欣赏

三、Vray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。 5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier(变暗倍增值),至直合适为止。 ③打开反射、折射调整主要材质 6根据实际的情况再次调整场景的灯光和材质 7渲染并保存光子文件 ①设置保存光子文件 ②调整lrradiance map(光贴图模式),min rate(最小采样)和max rate(最大采样)为-5,-1或-5,-2或更高,同时把[准蒙特卡洛算法]或[灯光缓冲模式]的细分值调高,正式跑小图,保存光子文件。

vray for su渲染流程和问题

1.材质:选中材质,点“m”,找打那个材质,右键“create”。 2.水面:先添加,反射,透明,折射。凹凸贴图(水,墙面,size是唯一需要 改的东西20-50),置换贴图(草地) 3.注意:一定要添加场景。 Emissive(自发光)reflection(反射)diffuse(漫反射) (1)漫反射:color,transparency。M有贴图,m没有贴图。Bitmap 是位图,不用在vray里调,在su里调就行。 (2)Maps-bump凹凸,黑色凹陷,附着一张黑白图。Invert反转。 (3)反射:强度1.0默认就行了,m后,不是玻璃的话一般用fresnel反射。Hilight高光,reflect模糊,通常保持这两者保持一致。木头开 反射,刚刚参数调0.3,6.所有的物体都有一点反射。石材0.3,木材 0.6 4.e天光。Textsky跟SU一样。GI和background通常保持一致。 5.人造光:一般使用rectangle(面片灯,负责照明,右键中有颜色强度,开 光,是否可见,双面发光等)和ies(files要设置,还没解决强度1000000),负责光路装饰。 6.布光:环境,m,texsky+sun1)(sun1要手动选择一下)(设置size3-5) +物理相机,配合SU调节时间和阳光角度。 Hdi贴图。UVWtipe设置成UVWenvirorment,maping type一般根据hdi贴图设置成球形,mirrorball GI-bouncs一次二次反射,室外试煊(发光贴图+灯光缓冲),室外最终(发光贴图+b打头),分别是第一和第三个。室内(灯光缓冲+b打头)分别是4

VRAY渲染设置模板

第一课:VRay的安装和操作流程 一、 Vray的安装 二、 Vray的简介: VRay是由著名的3DS max的插件提供商Chaos group推出的一款较小,但功能却十分强大的渲染器插件。VRay是目前最优秀的渲染插件之一,尤其在室内外效果图制作中,vray几乎可以称得上是速度最快、渲染效果极好的渲染软件精品。随着vray的不断升级和完善,在越来越多的效果图实例中向人们证实了自己强大的功能。 VRay主要用于渲染一些特殊的效果,如次表面散射、光迹追踪、焦散、全局照明等。可用于建筑设计、灯光设计、展示设计、动画渲染等多个领域 VRay渲染器有Basic Package 和 Advanced Package两种包装形式。Basic Package具有适当的功能和较低的价格,适合学生和业余艺术家使用。Advanced Package 包含有几种特殊功能,适用于专业人员使用。 三、 Vray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。

②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。 5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍增值),至直合适为止。③打开反射、折射调整主要材质 6根据实际的情况再次调整场景的灯光和材质 7渲染并保存光子文件 ①设置保存光子文件 ②调整lrradiance map(光贴图模式),min rate(最小采样)和ma x rate(最大采样)为-5,-1或-5,-2或更高,同时把 [准蒙特卡洛算法] 或 [灯光缓冲模式] 的细分值调高,正式跑小图,保存光子文件。 8 正式渲染 1)调高抗鉅尺级别, 2)设置出图的尺寸, 3)调用光子文件渲染出大图

VR工作流程

第一部分工作流程 一、Vray的工作流程 1创建或者打开一个场景 2指定VRay渲染器 3设置材质 4把渲染器选项卡设置成测试阶段的参数: ①把图像采样器改为“固定模式“,把抗锯齿系数调低,并关闭材质反射、折射和默认灯。 ②勾选GI,将“首次反射”调整为lrradiance map模式(发光贴图模式) 调整min rate(最小采样)和max rate(最大采样)为-6,-5, 同时“二次反射”调整为QMC[准蒙特卡洛算法]或light cache[灯光缓冲模式],降低细分。5根据场景布置相应的灯光。 ①开始布光时,从天光开始,然后逐步增加灯光,大体顺序为:天光----阳光----人工装饰光----补光。 ②如环境明暗灯光不理想,可适当调整天光强度或提高暴光方式中的dark multiplier (变暗倍增值),至直合适为止。 ③打开反射、折射调整主要材质 6根据实际的情况再次调整场景的灯光和材质 7渲染并保存光子文件 ①设置保存光子文件 ②调整lrradiance map(光贴图模式),min rate(最小采样)和max rate(最大采样)为-5,-1或-5,-2或更高,同时把[准蒙特卡洛算法] 或[灯光缓冲模式] 的细分值调高,正式跑小图,保存光子文件。 8 正式渲染 1)调高抗鉅尺级别, 2)设置出图的尺寸, 3)调用光子文件渲染出大图 第二部分:VRay常用材质的调整 一、VRayMtl材质 VRayMtl(VRay材质)是VRay渲染系统的专用材质。使用这个材质能在场景中得到更好的和正确的照明(能量分布), 更快的渲染, 更方便控制的反射和折射参数。在VRayMtl里你能够应用不同的纹理贴图, 更好的控制反射和折射,添加bump (凹凸贴图)和displacement(位移贴图),促使直接GI(direct GI)计算, 对于材质的着色方式可以选择BRDF(毕奥定向反射分配函数)。详细参数如下:

VRay网络渲染设置流程

像很多的高端渲染器一样,用VRay渲染器也可以通过设置网络集群渲染来加速渲染进程,这就好比多个人同时去做一件本来该由一个人去完成的事情,速度当然要大大加快很多,下面我们就来简单说明一下VRay网络渲染的基本流程。 (1)首先参与VRay网络渲染的机器最好是在同一个局域网范围内,大家彼此之间可以互相联通,这是最基本的条件。 (2)选择参与运算的几台机器中硬件配置最好的一台作为联机渲染的主机,启动3dsmax软件,打开即将要进行最终成图渲染的文件,设置好渲染参数。执行文件菜单下的归档命令,将文件打包成一个压缩包文件,这样不管将该文件带到何处,都不会产生贴图文件丢失的情况,只不过有时文件路径需要重新打通而已。 (3)将打包好的文件放在某个磁盘分区的根目录下的某个文件夹中,如“D:\Share”,并且一定要为该文件夹设置共享,这样别的机器才能访问到。 对文件进行解压缩。此时一个完整的压缩包文件会解压出若干个子文件来,大体上结构如图23-1所示。 图23-1 解压文件 (4)重新在主机上再次打开该文件,要注意这次打开的文件必须是放置在共享文件夹中的3 dsmax源文件,而不能是本机上的源文件,这一点特别重要。并且场景中所有贴图的路径必须更换为网络上共享文件夹中的贴图路径。这一步操作比较重要,我可以分为两步来进行细致的说明: A:首先,在共享文件夹中新建一个子文件夹名为“贴图”,然后将解压之后散乱的所有贴图文件包括光域网文件统一放置在这个新文件夹中,这样便于下一步的路径打通,整理后的贴图路径效果如图2

3-2所示。注意如果是利用光子图进行加速渲染,那么光子文件也必须放入该文件夹中。 图23-2 整理贴图为统一路径 B.将贴图统一放置之后,切换到“工具”选项板,然后单击“更多”按钮,在弹出的“工具”面板中选择“位图/光度学路径”命令,打开“路径编辑器”,参数如图23-3所示。 图23-3 启用贴图路径 接着单击“编辑资源”按钮,在弹出的“位图/光度学路径编辑器”中选择所有的贴图文件,单击“新建路径”按钮右侧的省略号小按钮,在弹出的“选择新路径”面板中设定贴图文件新路径为从网上邻居中调用的共享文件夹Share中的“贴图”文件夹,然后单击“使用路径”即可,图中左侧为原始的本地路径,右侧为必须更改为的网络路径。

Vray渲染知识和出图流程及参数设置(精)

Vray 渲染知识和出图流程及参数设置 Vray 的标准材质(VrayMtl 于 max 的标准材质(Standard 相比有什么特点: Vray 的标准材质(VrayMtl 是专门配合 Vray 渲染器使用的材质,因此当使用 Vray 渲染器时候,使用这个材质会比 Max 的标准材质(Standard 再渲染速度和细节质量上高很多。其次,他们有一个重要的区别,就是 Max 的标准材质 (Standard 可以制作假高光(即没有反射现象而只有高光, 但是这种现象在真实世界是不可能实现的而 Vray 的高光则是和反射的强度息息相关的。还有在使用 Vray 渲染器的时候只有配合 Vray 的材质(标准材质或其他 Vray 材质是可以产生焦散效果的, 而在使用 Max 的标准材质 (Standard 的时候这种效果是无法产生的。 在 Vray 使用全局光照之后,如果没控制好房间内部会产生色溢的现象,请问有 什么方法可以改变(控制色溢的现象发生??? 1:用 vr 的包裹材质可以很好的控制房间内部会产生色溢的现象 具体方法是再原来的材质的基础上加一层包裹材质然后减少物体发射 GI 的 大小 2:把产生全局光照 GI 适度的减小 ``就可以控制色益的问题 3:按F 10, 在间接照明中降低饱和键 , 可改善颜色益出 . 使用 Vray 渲染,如果没控制好参数,会产生噪点,如何处理?? 造成图面有噪点的原因主要和材质选择和灯光的曝光不足有主要关系 1:在选择材质方面最好选择 Vray 的材质(而不要选择 Max 的材质 2:提高首次和第二次的反弹倍增值(Primary bounces及 Secondary bounces的Multiplier 以提高间接照明的反弹亮度。

相关主题