CryEngine3使用小技巧.docx
《CryEngine3使用小技巧.docx》由会员分享,可在线阅读,更多相关《CryEngine3使用小技巧.docx(11页珍藏版)》请在冰豆网上搜索。
CryEngine3使用小技巧
说明:
本文为笔者在工作中使用cryengine3引擎的一些小技巧与常见问题(场景美术类),拿出来与大家分享,希望对使用CE3引擎的童鞋有所帮助,所涉及的问题点比较凌乱不系统,请见谅,有不准确的地方还望大家指正,引擎版本3.2.4
目录:
编辑器操作技巧
编辑器常用快捷键
批量替换物件
导入层时同名物件冲突
道路系统半透问题
solid模块编辑心得
模拟雨天路面反射效果
环境反射球
颜色矫正
树面片
BasicEntity裁切问题
材质问题
custom_material自定义材质
用FlowGraph连节点控制材质参数
材质编辑器中旋转贴图方向
导出cgf
模型面数过高的导出方法
多个物理阻挡子材质导出问题
FlowGraph
新建流程图
校色节点
用FlowGraph连节点控制材质参数
场景优化
车辆编辑
常用命令
TOD天气参数中文解释
###############################################################################
编辑器操作技巧:
编辑器常用快捷键:
数字键123分别为移动、旋转、缩放
q相机是否可穿过地表
视图下方speed后面的输入框数值可调整相机的移动速度
按住空格可查看物件中心坐标点
F3线框显示(crtl+g玩家模式下为切换3种角色移动模式)
ctrl+t物件列表
数字键盘+-调整笔刷大小
...
*****************
批量替换物件:
为了不改变坐标而更换brush类物件的cgf,单个物件可在下方Prefab中直接点选更换
批量更换则需选中多个物体,在属性框的Geometry中点开浏览框选择需更换的cgf(选中的多个物体最好为同一个cgf,如不同物体,执行此操作后会变成同一个cgf,且此操作无法ctrl+z撤销,)
************
导入层时同名物件冲突
导入层时(以x.lyr为例),如果场景(其他层)中已有同名物件,将会弹出提示框,无论叉掉还是选“oktoall”、“ok”,最终已有物件不动仍在原来的层,x层中将只剩不重名的物件,
不同之处是,选“oktoall”下次再遇到文件名冲突将不再弹出提示框,选“ok”或叉掉,下次还会弹出提示框
*************
道路系统半透问题
要令道路系统两头半透,道路材质需勾选点着色
另:
道路系统会透出下方材质的normal,与它的段数有关,段数仅一段时会透出下方normal,段数2段以上时两端的那段会透出下方normal
***************
solid模块编辑心得
当有多个solid时,可全部选中,点EditingMode,可以一起编辑,但如果模块过多引擎容易崩溃,可进入low显示模式或F3线框模式
合并solid时,如模块过多引擎容易崩溃,按F3线框显示再合并(如仍然报错,可进入low显示模式,并将terrian、ocean、vegaition、其他层的物件全部隐藏),合并过程中注意多存备份
************
模拟雨天路面反射效果:
加一盏普通Light,将posteffect数值改为2,半径改为覆盖整个场景
DiffuseMultiplier控制反射强度0最大,值往上调越小
SpecularMultiplier控制高光反射强度0没有反射,值往上调越大
*************
环境反射球:
misc里拖入EnvironmentProde,半径改为覆盖整个场景,勾preview_cubemap可预览,反射贴图尺寸一般定为256,点GenerateCubemaps,即可在\Game\Textures\cubemaps\相应的关卡文件夹下生成反射贴图(每张有3种格式文件各一个)
场景中所有物件均会受影响,调节每个物体材质的高光强度即可控制反射强度,值越大越强,glossiness控制反射贴图清晰度,值越大越清晰
下方参数,fresnelscale也可控制反射强度,值越大越强
**************
颜色矫正:
色条图片文件放在Texture/ColorCharts/下(也可放在其他目录)
r_ColorGrading=1
r_ColorGradingCharts=1
r_ColorGradingChartImageTexture/ColorCharts/test01.dds
r_ColorGradingChartImage0(还原默认颜色列表)
也可通过在FlowGraph中连节点实现,具体做法参见校色节点
**************
树面片:
为了节约资源,可开启远距离使树面片贴图代替模型树的功能
usesprite打勾,打开远距离显示树面片
size的尺寸对面片的显示也有影响,值太大会不显示,一般用1,如尺寸不够可右键选scaleselectedinstances对当前笔刷刷出的所有树放大
树面片与本体模型的亮度如有差别,可先用Brightness调节亮度(亮度不一定按数值升序由暗变亮,不同天气需选择不同值才能使树面片亮度适配原树亮度),再调节材质球的亮度以匹配
有时更换树材质引擎会崩溃,可先隐藏植物,再更换材质
相关命令:
命令框输入sprite,显示与树面片有关的命令,
e_VegetationSpritesDistanceCustomRatioMin面片可视距离最小值
r_VegetationSpritesTexRes64树面片贴图精度
****************
BasicEntity裁切问题
BasicEntity放大约10倍以上裁切会有问题,很近的距离即会被裁切(物理是否有影响不确定),可将该物体在max中放大导出一个新的cgf再调用
####################################
材质问题:
custommaterial为物件赋予不同材质
物件编辑栏中MTL[Nocustommaterial]按钮可为物件指定一个用户自定材质,打断即恢复物件的默认材质
*************
材质编辑器中旋转贴图方向:
材质编辑器贴图通道下拉,Rotator类型选FixedRotation,改PhaseUVW值即可
########################
导出cgf
模型面数过高的导出方法
当Max中物体面数过高(超过30000面或32768个点)时,会无法导出cgf,可新建一个虚拟体(名字默认即可),将本体分成两部分(面数都低于3W即可),均连在虚拟体上,将两个物体加入导出列表,ExportfileperNode、MergeAllNode均不勾选,导出即可
(此方法可导出的面数上限没测试过,6w左右貌似也许基本应该可以)
*************
多个物理阻挡子材质导出问题:
有时物件需要多个不同的物理阻挡,材质球中会有多个阻挡子材质球,如果没有普通子材质球(不勾选physical的材质球),导入引擎的透明阻挡的物理是无效的,必须在材质球中加一个普通子材质球,模型中至少有一个面使用这个子材质,导出的cgf的物理在引擎中才正常
############################
FlowGraph
新建流程图:
在场景中拖入一个GemoEntity或Entity,右键creatFlowGraph,弹出框中输入流程图名,FlowGraph编辑器中会出现新增的流程图名,在界面中编辑节点即可,右键流程图名可改名,此流程图是跟着创建时选中的GemoEntity或Entity实体保存
*************
校色节点
FlowGraph视图中右键,AddNode–Image–ColorGradient
节点中选择校色贴图路径,start的output连到Trigger上即可
*******************
用FlowGraph连节点控制材质参数
在FlowGraph中拖入以下节点
右键,addStartNode
右键,addNode-Math-setNumber
右键,addNode-Engine-MaterialParam(改变所有使用该材质的物体)(如只改变选中物体的材质,右键,addNode-Entity-MaterialParam)
MaterialParam点第二行,选中一个材质,点箭头赋予MaterialParam,SubMtlId=处选择需要改参数的Id号(Id号从0开始算,所以此处输入的Id号为材质编辑器中的Id序号减1)
点ParamFloat=,在...中选需要控制的参数类型
Start输出端拖出箭头至setNumber输入端,setNumber设置数值,输出端拖出箭头至MaterialParam的ValueFloat端,节点连接完成
此时编辑器视图中没有变化,点编辑器视窗下方AI/Physics按钮即可激活流程图检验效果
#############################
场景优化:
场景优化主要从减小贴图总量、cgf总量、DP值,加occluder裁切片等几个方面着手
贴图优化:
高光法线可压缩一半,有些高光可用diffuse代替
大尺寸贴图尽量不要带通道,dds带通道尺寸翻一倍
cgf优化:
cgf总量为读取到内存的cgf种类的字节数的总和(批量复制的cgf只算一种),单个物体cgf的大小主要由面数决定,优化cgf即减面,面多的物体可做lod,但加了Lod的物体cgf大小会增加,所以需要综合权衡
DP优化:
影响DP的主要因素是ID号数量和阴影
减少ID较繁琐,简单方法是去阴影,仅留贴图面积最大的ID勾选阴影(如阴影穿帮太厉害,可在max模型内部套一个box,材质球中仅留下贴图面积最大的ID勾选阴影,给box赋予这个ID)
场景优化常用检查命令:
e_StreamCgfDebug=1显示场景中每个cgf的大小
3在屏幕右侧显示当前内存中读取的cgf的大小
e_StreamCgfDebugMinObjSize显示cgf大小的阈值,低于这个值的均不显示(默认值500kb)
r_TexturesStreamingDebug=4在屏幕右侧显示当前内存中读取的尺寸较大的贴图的大小
3在屏幕右侧显示当前内存中读取的尺寸较小的贴图的大小
r_TexturesStreamingMaxRequestedJobs显示贴图大小的阈值(默认值256)
Rollupbar第三栏下的Drawcallsperobject勾选显示每个物体的DP值
r_DisplayInfo=2始终显示cgf和tex的总量值(默认值1)
#############################
车辆编辑:
Entity——vehicle下拖出一辆现有的车
view中打开车辆编辑器vehicleediter
选中车,点openselected,另存为一个*.xml文件
重启引擎,可在Entity——vehicle下拖出名为*的车辆模板,在vehicleediter中打开,在body的展开栏中,filename处替换新的cga模型,保存即可,其他参数可在vehicleediter中改
################################
常用命令:
e_ViewDistMin=最近裁剪距离(超过这个距离才会裁剪)
e_ViewDistRatio=裁剪距离比(值越大,显示距离越远)
e_debugdraw1显示每个物件名,面数,lod使用情况
2显示每个物件面数
e_StreamCgfPoolSize读取cgf所耗内存溢出阈值,默认为56,超过阈值会在视图右上方红字报警,且可能会随机不渲染已摆放的物件
p_draw_helpers=1显示所有包裹框
p_debug_joints=1可以显示关于joint的信息
e_ShadowsCastViewDistRatio=1越大阴影距离越远
e_LodRatio=2000物体切换LOD的距离
e_TerrainDetailMaterialsViewDistZ=2000地形细节纹理的距离
r_DisplayInfo1查看Drawcall的调用次数和多边形的绘制数量
profile1和profile6,你可以查看在你的场景中最消耗性能的是那些部分
e_TerrainOcclusionCullingStepSize地表裁切距离值(常用于隧道内部向外看时的裁切距离调整)
s_SoundEnable声音开关
e_VegetationSpritesDistanceCustomRatioMin树面片裁切距离
r_UseEdgeAA抗锯齿,数值0~3,3为最佳效果
cl_fov视图相机焦距(默认为60,和现实中焦距概念不同,值越大,广角越强)
场景优化常用检查命令:
e_StreamCgfDebug=1显示场景中每个cgf的大小
3在屏幕右侧显示当前内存中读取的cgf的大小
e_StreamCgfDebugMinObjSize显示cgf大小的阈值,低于这个值的均不显示(默认值500kb)
r_TexturesStreamingDebug=3在屏幕右侧显示当前内存中读取的贴图的大小(3显示较小贴图,4显示较大贴图)
r_TexturesStreamingMaxRequestedJobs显示贴图大小的阈值(默认值256)
Rollupbar第三栏下的Drawcallsperobject勾选显示每个物体的DP值
r_DisplayInfo=2始终显示cgf和tex的总量值(默认值1)
常用的阴影参数:
1,调整阴影分辨率:
e_shadows_max_texture_size1024
分辨率越大,阴影像素越高,质量就越好
2,调整阴影模糊程度r_ShadowJittering2.5
在阴天的时候如果觉得阴影太明显,可调高点,阴影就会变模糊
3,调整植物的模型的的可见距离e_view_dist_ratio_vegetation46
如果你不想让远处的植物消失,那你就把数值调到500,或者更高吧。
4,调整阴影的覆盖范围
e_gsm_lods_num=5
e_gsm_range=4
e_gsm_range_step=3
默认的这几个参数就行,这几个参数可以调整阴影的覆盖范围,如果调整得太高,单个物体的阴影的质量就会下降,所以小范围微调就可以了。
################################
TOD天气参数中文解释:
HDRdynamicpowerfactor总体亮度
Skybrightening(terrainocclusion)地表occlusion,效果不明显
SSAOamountmultiplier类似occlusion,值越大越强(与下面值配合调效果明显)
SSAOcontrastmultiplier整体对比度
Globalilluminationmultiplier漫反射光强度(3.2.4版阴影中计算有bug,尽量小于0.5)
Suncolor太阳光(主光)颜色
Suncolormultiplier太阳光强度
Sunspecularmultiplier太阳光高光强度
skycolor大气漫射光颜色
skycolormultiplier大气漫射光强度
Fog
fogcolor雾气颜色
fogcolormultiplier雾气亮度
Fogcolor(top)顶端雾气颜色(要使顶端雾气生效需要将Rollupbar-terrain-Environment-Fog下的UseFogColorGradient改为1)
Fogcolor(top)multiplier顶端雾气强度
Globaldensity雾气密度
Atmosphereheight雾气高度
Densityoffset(inreality0)雾气最近距离
Rampstart雾气通透区间起点
Rampend雾气通透区间终点
Rampinfluence雾气通透区间透明度(值越大越通透)
NightSky仅当天空盒选择skyhdr时有效
Horizoncolor地平线处天空颜色
Zenithcolor顶端天空颜色
Zenithshift顶端与地平线颜色分界线高度
Starintensity星星亮度
Mooncolor月亮颜色
...
NightSkyMultiplier天空参数倍增(对NightSky相应参数的效果增强)
...
SunRaysEffect体积光效果
Sunshaftsvisibility光线可见距离,值越大光覆盖范围越大
Sunraysvisibility光束可见距离,值越大光越曝
Sunraysattenuation光束衰减,值越大,体积光束越短
Sunrayssuncolorinfluence自定义光束颜色强度,调到1体积光束仅为太阳光(主光)颜色,无自定义颜色,调到0自定义颜色的影响最大
Sunrayscustomcolor自定义光束颜色
Advanced
Oceanfogcolor海洋雾气颜色
Oceanfogcolormultiplier海洋雾气强度
Oceanfogdensity海洋雾气密度
Skyboxmultiplier天空盒亮度
ColorFilter
Saturation饱和度
contrast颜色对比度
Brightness颜色明度
Colorlevels类似PS的色阶
Mininput调节画面曲线暗部,值越大暗部越暗
Gamma整体曝光值
Maxinput调节画面曲线亮部,值越小亮部越亮
Minoutput画面整体变亮
Maxoutput画面整体变暗
SelectiveColor类似PS可选颜色,但只能矫一种颜色
Color选择需要矫的颜色
Cyans青通道
Magentas洋红通道
Yellows黄通道
Blacks黑通道
Filters滤镜
Photofiltercolor滤镜颜色
Photofilterdensity滤镜强度
DepthOfField景深
Focusrange焦距
Bluramount模糊度
***********
属性面板RollupBar——Terrain——Environment下的HDRSetup参数也可影响天气:
contrast对比度(与TOD中的对比度不同,不会增加亮度)
BloomMul颜色晕染
FlaresMul镜头光晕
StreaksMul光源横向晕染
######################################
2012.10.3