原文地址 https://www.iddevnet.com/quake4/ArtReference_CreatingModels
在QuakeIV中创建模型
本文件将尝试解释Raven Software的艺术家和建模师用来创建Quake4的世界模特,
生物和人物的过程。
它从概念阶段开始,通过创建高低模型,创建UV,设置着色器,渲染正常,
然后绘制漫反射,镜面和高度贴图,创建完成的皮肤。
虽然本文件专注于创建一个生物,但您所创建的模型可能是您想象中的任何事物。
我们已经尝试简化了一些没有足够的经验创造资产的灵感人士的方向和描述。
概念图:
在为QuakeIV创建您的角色的概念图时,尝试思考。
Doom3引擎有一些技术限制,您需要在建模和绘制角色时考虑到这些限制。
在概念阶段,尝试将这些限制的修复程序并入设计中是很聪明的。
从角色中脱落或伸出的管和软管可能看起来很棒,
但它们不仅会引起偶尔的造型头痛,
而且还可能会不必要地增加对您的lo-poly模型的聚计数。
那些悬挂或突出的管子也可能在发动机中投掷太多的阴影体积,
这可能会大大降低游戏的帧速率。
他们还将要求装置/动画师为他们创建一个骨架,
然后他们或她将需要动画来添加现实主义。
随着我们为Quake4创建的Strogg Grunt,概念艺术家最初创建了一个四臂的生物,
两个较小的一个与两个大的一个,并从它的前臂突出并且进入后面。
为了减少 原始设计 可能产生的问题,
艺术家在修改后的概念图上移除了喷泉软管,
建筑师用来创建他的模型的Grunt。
两个较小的武器最后在设计中被删除。见下面的例子...
概念艺术家还创建了前,后,侧视图,以帮助建模者从各个角度可视化生物的外观,
并简化建模者的工作。参见下面的Strogg Grunt的前/后/侧视图
建模你的角色 :
在为您的角色提出可行的概念设计后,您将需要使用许多3D建模包之一来对其进行建模。
我们的高分辨率建模人员使用Maya和Lightwave对Quake4进行所有高分辨率建模。
您可以使用大多数任何建模软件,但最终我们使用Maya和Lightwave,
因为我们想要遵循与Doom3中使用的Id软件相同的工具路径。
我们选择使用这个工具集,因为我们正在使用他们的革命性的新引擎,
如果我们有任何问题或有关这个过程的问题,他们更容易帮助我们。
您将需要在高聚和低聚物中对您的角色进行建模。
对于低聚物,我们的生物范围从一些较低范围的生物上的500个聚合物,
其中一些老板多达5000到6000个聚合物。
高聚合物模型的范围从几千个聚合物到数百万个聚合物。
高分辨率模型不会进入最终的游戏。
它用于渲染一个正常的地图 ,使得低聚合模型进入游戏看起来像一个更高的聚合模型。
高分辨率模型不会进入游戏的原因 是因为在模型中有太多的聚合物,
引擎可以顺利地运行,而不需要等等。
具有其法线图的低聚体便宜于记忆方式,
并使得低聚物看起来像它的数量要高得多。
在对高和低模型建模时,需要考虑一些技巧:
-
高低模型定位:尽可能使高多聚和低聚合模型尽可能接近,以获得最佳的渲染效果。
-
高和低多
-
模型都必须占据相同的空间并相互排列,以获得精确的渲染。
-
“T”构成您的生物或人物模型:建模您的生物或人物时,将其置于经典的T姿势配置中,
-
而不是在酷炫的动作姿势等中.T姿势将允许您复制和粘贴相似的部件,腿,设备)
-
从一边到另一侧,帮助你撕下你的紫外线,并帮助动画师,当他的索具和点对你的模型。
-
将手腕和手掌向前摆放,以帮助游戏中的尴尬姿势,如拿着武器,使用GUI等。
-
添加足够的聚合物到关节区域,以帮助您的模型动画:确保您添加足够的多功能手腕,肘部,
-
肩膀,膝盖和脚踝关节,以允许您的生物或角色移动正确,看起来逼真的动画。
-
渲染之前,将您的模型加倍:确保您的高聚和低聚模型都是三倍,并且您的模型上没有1,2或
-
4个聚合或非平面聚合物。
-
如果您没有三重并且删除违规的1,2或4多面或非平面聚合物,
-
则当您尝试渲染时,您的型号将不会加载。
-
关闭网格:关闭打开到模型内部的高聚焦点上的打开区域,以防止渲染器尝试进入,
-
同时渲染您的法线贴图。
-
尝试在渲染过程中防止覆盖:在建模高聚合模型时,
-
尽量避免创建渲染跟踪将在渲染您的法线
-
贴图时创建覆盖的区域。这些将是渲染器将无意间追踪到模型的另一部分的区域,
-
该区域不属于它,
-
因为渲染区正在尝试访问的区域太接近另一区域,或者有一个进入和后面的开放区域。
-
您可以通过调整着色器中的跟踪高度和重新渲染来尝试减轻问题,
-
或者您可能需要关闭模型的一部分上的路径(请参阅下面的“着色器和路径”部分),
-
并将其他部分与其他部分分开放置模型。
-
您也可以将高分辨率模型分割成单独的部分,然后单独渲染这些部分。
-
将低聚合物模型符合高聚合物模型:尽量将设备和零件从主网格中伸出。
-
防止模型上难以渲染的问题会减少您在渲染中,正常地图等上需要执行的调整量。
-
如果某些内容在高多边形上,像一个旋钮或一个控制器,它是大概是一个很好的主意,也可以
-
在低分辨率模型中构建它,因为从侧面看,它可能看起来很奇怪。
-
多数可能不总是允许你这样
-
做。额外的多边形可能会导致不必要的帧率问题等。它可能看起来不太好,少聚合物,
-
但有时你必须牺牲一个真棒看起来的模型与所有的东西,为了游戏玩法。
-
角上的直角:如果高多边形模型正在使用直角,则在低聚物上使用它们。
-
如果高聚合物不在角落使用直角,请勿在低聚物上使用它们。
-
无论哪种方式都会导致翘曲。有时这是不可避免的,因为聚数。
-
在高分辨率平面上变化的高度:尽量避免使用直角的高分辨率建立各种表面。
-
当它自己渲染时,它将看起来像一架平面飞机。
-
在创建水平纹理时尤其如此,但在创建生物和人物时也要考虑到明智之举。
-
有几件事情你可以做,以避免这一点:
-
- 使用角度或弯角而不是90度角建立不同的高度。
- 构建lo-poly来补偿或紧密匹配高聚物。
-
气瓶的问题:低和高模型之间的圆柱形形状总是会变形。
-
您真的不能在低聚合模型上花费额外的聚合物来使渲染完美,
-
因为它将对游戏造成巨大的打击,但您可以按照以下准则最大限度地减少翘曲。
- 为了减轻翘曲(不可避免地会有一些,无论如何),
-
- 您将需要花费额外的多晶硅在圆柱形模型上进行渲染。否则,渲染时会显着扭曲。
- 需要添加的聚合物的量可以通过玩家对模型的接近程度来确定。
- 观察模型越远,对玩家来说,扭曲越小。
- 所以...如果模型从房间中被看到,那么将聚合物花在曲线上就不那么重要了。
- 如果模型要在玩家面前,可能会推荐使用模型来减少翘曲。
例子:
坏! 白色代表低的多模型,黑色是高的。低聚合物模型上的边
(6)与非常好的圆形高多边形模型相比太低,以获得不错的渲染,
而在圆柱体的边缘没有大的翘曲。从远处看,会看起来很好,
但靠近那里会有非常明显的扭曲。
好! 低是白色高是黑色。这个版本会产生更好的渲染结果,更少的扭曲。为什么?
低聚模型上的边数(12)更接近匹配高多边形模型的圆度,并将产生更干净的渲染,
而弯曲较少。该模型将在近处或远处看起来更好。
困难的部分是确定要在圆柱体上花费的聚合物的数量。
将更多的进入低多晶圆筒意味着您可能不得不将更少的投入到您的模型的其他领域,
以使游戏顺利进行。将无限量的聚合物投入您的模型不是答案。
-
从其他型号复制和粘贴零件:从其他型号中偷取和复制零件以减少建模时间。
-
从另一个型号上取螺栓,螺钉,管道,软管,灯泡,小外壳等,
-
将其复制并使用在您的型号上将使这项工作变得更加容易。
-
我们创建了可重复使用的零件和零件的模型零件目录,我们可以复制并放置到我们的模型上。我们已经包括一些这些模型部分目录供您访问。包括这里的链接
-
浮动部件:由于Doom3的渲染过程,建模者可以将“块”彼此“漂浮”在几米之间,而不是将它们推入或集成到网格中。此外,由于hi-poly模型仅用作创建法线贴图的基础,因此零件和零件可以被推入自身而不是使其完全融合。见下文:
这是Strogg Grunt高聚模型的膝盖和大腿部分的屏幕截图,用于渲染法线贴图。
膝盖上方的三角形凹痕看起来像是整合到大腿网中,但不是。它漂浮在大腿网上。
下面的第二个屏幕截图显示了与上述屏幕截图相同的三角形缩进的线框拍摄,但是从侧面。
请注意,三角形缩进实际上浮在主大腿网格上方。它不是缩进大腿,它不需要为渲染器来想想。
这使得建模您的高聚物更容易,也减少了高聚物所需的聚合物数量。
翻录,着色器和路径,并渲染您的模型
在您完成对生物建模之后,您将需要撕下您的lo-poly模型,为您的模型的皮肤创建UV坐标。您将
需要使用某种UV创建软件(如U-View)来创建您的模型的UV。
大多数建模包都带有创建UV所需的工具。有些是相当基本的,其他的都不错。
有些只能创建快速的地图集UV,其中软件将UVs放在一个随意的组合中,没有想到接缝,
易于绘画等。玛雅的紫外线工具真的很不错,并允许艺术家在创造中进行操纵他们的紫外线。
Lightwave的内置UV创作工具并不是最好的,但就渲染而言,Lightwave是伟大的。
还有网站在线,为几个不同的软件包提供用户创建的插件,使您可以更加操纵您的UV。
在Raven,我们的工具之一为我们的艺术家在Lightwave中使用了非常好的专有UV工具。
开始UV坐标前要检查的内容:
-
确保高模型和低模型都是三倍。
-
确保高模型和低模型都是三倍。
- 确保lo-poly和hi-poly模型共享相同的原始空间,
- 因为在lo-poly上的纹理坐标将使用hi-poly作为美化的凹凸贴图。
- 如果他们不排队,则呈现时,法线贴图可能会失真或失调。
将模型切割成切割和渲染的部分:高多边形模型可能需要将其分解成较小的分组或部分,
以克服在渲染过程中可能的变形或过度绘制问题。这可能非常耗时,
但是当你得到一个漂亮,干净的渲染时,它是值得的。您可能需要在hi-poly和lo-poly型号上这样做。
如何撕掉模型:虽然每个UV坐标创建者都不同,但是有几个基本技巧可以帮助您创建最佳的UV。
- 尝试将接缝放在不容易看到的不显眼的地方。然后放在手臂和腿部的内侧,
- 沿着躯干的两侧等等。这样他们对玩家来说不会那么明显,
- 并且会使您的模型的皮肤看起来更好。
-
当撕开困难的部分,如手臂,手和腿,将它们分开,如剥离香蕉,
-
然后将它们压平在一起,并将其焊接在一起。
-
重要!确保您将正确的点焊接到相应的姊妹点。否则,你会得到灵活的紫外线。
- 对于对称部分,如手臂,腿,头部和躯干,您可以删除模型的一面,
- 然后撕开并平整一半。撕下这些碎片后,您可以将其复制并镜像到模型的另一面。
- 然后,您需要重新焊接沿中心缝的点。确保模型实际上是对称的。
- 如果你有一个不对称的物品,就像一面只有一面机械的头部,
- 或者只有一只眼睛有疤痕的脸,你可以做更多的全局撕裂,使整个头部变平。
- 使缝线从颈部后部的中间向上移动到头顶部。您皮肤上涂上的头发将有助于覆盖缝。
-
确保在翻录或建模程序中的低聚合模型上设置路径。
-
该路径允许引擎能够找到并访问您的模型进行渲染过程。
-
在Lightwave中,点击“Q”会弹出Change Surface窗口。在“名称”部分中,键入您的路径。
-
该模型将被放置到q4base目录中,因此引擎将在这里找到您的低聚模型。
-
但是,没有必要把q4base放在路径的开头。
-
引擎已经知道这是模型的地方,但您必须包括其余的路径才能使引擎找到您的模型。
-
Strogg Grunt的身体低聚模型的路径是这样的:model / monsters / grunt / grunt_body2。
-
没有必要添加文件扩展名(.lwo,.ma,.mb,等等)在您的路径中的低聚模型的名称之后。引擎会发现它没有它。
-
每个建模和UV创建程序是不同的,并且每个建立路径的方式不同。检查您的软件手册以获得正确的过程,以创建UV的路径。
路径和材质着色器:
要充分了解路径和着色器以及如何设置它们,请阅读“ Quake 4着色器”文档。
渲染您的法定地图:
以下是一个逐步的指南,用于渲染您的法线贴图。
包括如何准备渲染模型,如何设置您的着色器,以及一些提示和故障排除。
这个方法有时候是指Lightwave,我们用它作为我们的UV创建软件。
步骤1:初步设置 第一步总是至关重要的; 基础总是我们忽视的第一件事。
-
1.a确保您的高低模型在单独的文件中占据相同的空间:
- 将Light Files中的两个文件打开,并通过在Lightwave的“图层”窗口中激活这两个文件,确保低和高多重网格占据相同的空间。
1.b确保您的高低模型是三倍。
- 在Lightwave中,按住(shift T)可将您的车型加倍
- 在“多边形”模式中,在多边形统计窗口中查看,并确保模型中没有1,2或4个多边形或非平面多边形。如果有,请在此窗口中选择它们并将其删除。如果不删除它们,则在尝试将其退出时,您的模型将不会加载。
步骤2:预防紫外线 UV定义:UV是投影着色器的扇区或坐标。这不是网格的直接部分; 它可以作为读取.tga文件的一种方式。有时,UV可能会从.obj文件或Maya文件传输中导致未被焊接。
-
2.a合并要点:设置UV地图后,确保模型点合并并焊接任何尚未合并的奇点。如果您不了解焊接点,请参阅Lightwave手册(七)中的焊接命令第26.5页或合并和焊接命令第28.36节
2.b检查确定合并点应该加入:我们的一些机械模型被压入并且非常接近。有时点合并不应该。很少发生这种情况,但是对于运动力学的模型,检查可能很好。
2.c我的基本页面有多大:您应该在此时确定需要呈现的基本页面.tga的大小。
通过合并点,您可以确保更平滑的法线贴图。
如果你没有合并你的分数,模型将会有奇怪的接缝,光线不会在游戏中正确地移动到表面上。
步骤3:设置物料着色器 这是敲门声,大多数人都错了。
我们来面对事实 很容易弄乱这一点,所以在这个阶段,必须耐心,不要惊慌。
一些定义:材质:实际文件格式。
- 着色器:材料中的各个条目。
这是模型的典型着色器,我们将使用它作为示例:
车型/ MapObjects的/ strogg / barrels_and_containers /桶/ medium1_low { noselfShadow unsmoothedtangents renderbump -size 256 256 -trace .05 -aa 2 -mergehigh models / mapobjects / strogg / barrels_and_containers / barrels / barrel1_low_local.tga work / models / mapobjects / strogg / barrels_and_containers / barrels / barrel1_high.lwo diffusemap模型/ mapobjects / strogg / barrels_and_containers / barrels / medium1_low_d.tga bumpmap addnormals(models / mapobjects / strogg / barrels_and_containers / barrels / medium1_low_local.tga,heightmap(models / mapobjects / strogg / barrels_and_containers / barrels / medium1_low_h.tga,1)) specularmap模型/ mapobjects / strogg / barrels_and_containers / barrels / medium1_low_s.tga }
-
3.a为renderbump编写着色器:这是使渲染工作的关键。所以你会怎么做?那么最安全和最简单的事情是复制和粘贴以前的条目并更改路径名。以下是使用上述示例的细节:
顶线:模型/ mapobjects / strogg / barrels_and_containers / barrels / medium1_low是着色器标题:这是游戏在激活渲染时寻找的内容。将其视为别名或章节标题。 noselfShadow:这个命令告诉引擎,该模型是不会生成任何可能会使引擎减速的自身阴影。 未平滑的切线:未平滑的切线用于动画模型。如果模型不动画,请勿使用未平滑的切线。 renderbump:当你要求一个renderbump时,这是游戏寻找的命令。如果着色器没有这个命令,它将不会呈现。 -size 256 256:这是最终渲染正常将渲染的大小。您可以通过减少或增加两个数字来改变渲染正常的大小。数字必须为2的幂,例如32 X 32,64 X 64,128 X 128,256 X 256,512 X 512或1024 X 1024等。您还可以将其设置为大于另一个,如512×1024。 -trace .05:Trace是模型呈现的高度。想想低聚模型是高聚物被吸引到的表面。如果高聚合物具有很多浮动几何,则可能需要在不同的跟踪高度多次渲染模型。 -aa 2:这是一个反别名功能。如果将其设置为1,则将UV映射1渲染为1,而如果将其设置为2,则将其设置为2,从而将其设置为2。 -mergehigh:你需要这个来合并高多边形模型,所以它将呈现为一个模型。如果你没有这个,它会渲染一个部分模型。 模型/ mapobjects /桶/桶1_low_local.tga:这是告诉游戏写一个名为桶1_low_local.tga的targa到模型/ mapobjects / strogg / barrels_and_containers / barrels目录(记住这些是路径名,所以每个斜杠是一个文件夹)。 work / models / mapobjects / strogg / barrels_and_containers / barrels / barrel1_high.lwo:这告诉游戏使用这个高多模型来创建法线贴图。您可以将高分辨率模型保留在艺术品/作品中。高分辨率模型不应该在Q4base上。 记住使用{和}打开和关闭着色器,以便游戏识别它。查看“Quake 4着色器”文档以获得更好的解释。
-
3.b双重检查您的路径:如果高多边形模型的路径错误,则不会呈现。该游戏不允许在路径名称中使用空格,因此使用下划线(_)代替空格。
3.c拼写:检查拼写,不要忘记保存
生物,人物和其他涉及的模型着色器:生物,人物和其他相关模型的着色器要复杂得多,令人困惑。最终,我们建立了一个相当大的着色器库,可以复制和粘贴,然后根据需要更改路径和模型和皮肤映射名称。我们建议做同样的...复制粘贴。
这是一个生物的着色器设置的例子... Makron。
生物比纹理或简单的,未经动画的世界模型更多的涉及,
因为您必须包括眼睛的着色器,武器,剪切船体,辉光地图和传送淡出。
// Makron ----------------------------------------------- --------------------------------- 车型/怪物/ makron / makron_lo { noselfshadow unsmoothedtangents renderbump -size 1024 1024 -trace 0.07 -aa 2个模型/怪物/ makron / makron_lo_local.tga工作/模特/怪物/ makron / makrontorso_hi.lwo materialImage模型/怪物/ makron / makron_lo_hit.tga bumpMap addnormals(models / monsters / makron / makron_lo_local.tga,heightmap(models / monsters / makron / makron_lo_h.tga,4)) specularmap downsize(models / monsters / makron / makron_lo_s.tga,1) { 混合diffusemap map downsize(models / monsters / makron / makron_lo_d.tga,1) alphatest .5 } { 混合添加 地图缩小(型号/怪物/ makron / makron_lo_gl.tga,1) rgb grunttable [time * 1.3] } inlineGuide corpseBurnEffect(models / monsters / makron / makron_tport.tga) } 车型/怪物/ makron / makron_torso { noselfshadow unsmoothedtangents renderbump -size 1024 1024 -trace 0.07 -aa 2个模型/怪物/ makron / makron_lo_local.tga工作/模特/怪物/ makron / makrontorso_hi.lwo materialImage模型/怪物/ makron / makron_lo_hit.tga bumpMap addnormals(models / monsters / makron / makron_lo_local.tga,heightmap(models / monsters / makron / makron_lo_h.tga,4)) specularmap downsize(models / monsters / makron / makron_lo_s.tga,1) { 如果Parm7 == 0 混合diffusemap map downsize(models / monsters / makron / makron_lo_d.tga,1) alphatest .5 } { 混合添加 地图缩小(型号/怪物/ makron / makron_lo_gl.tga,1) rgb grunttable [time * 1.3] } inlineGuide corpseBurnEffect(models / monsters / makron / makron_tport.tga) } 车型/怪物/ makron / makron_torso_collision { noShadows 碰撞 materialImage模型/怪物/ makron / makron_lo_hit.tga } 车型/怪物/ makron / makron_legs { noselfshadow unsmoothedtangents renderbump -size 1024 1024 -trace 0.07 -aa 2个模型/怪物/ makron / makron_lo_local.tga工作/模特/怪物/ makron / makrontorso_hi.lwo materialImage模型/怪物/ makron / makron_lo_hit.tga bumpMap addnormals(models / monsters / makron / makron_lo_local.tga,heightmap(models / monsters / makron / makron_lo_h.tga,4)) specularmap downsize(models / monsters / makron / makron_lo_s.tga,1) { 混合diffusemap map downsize(models / monsters / makron / makron_lo_d.tga,1) // alphatest .5 } { 混合添加 地图缩小(型号/怪物/ makron / makron_lo_gl.tga,1) rgb grunttable [time * 1.3] } inlineGuide corpseBurnEffect(models / monsters / makron / makron_tport.tga) } 车型/怪物/ makron / makron_legs_collision { noShadows 碰撞 materialImage模型/怪物/ makron / makron_lo_hit.tga } 车型/怪物/ makron / makron_eye { noselfshadow unsmoothedtangents renderbump -size 128 128 -trace 0.05 -aa 2个模型/怪物/ failed_transfer / ft_eye_local.tga工作/模型/怪物/ fail_transfer / ft_eye_hi.lwo 物质型肉体 diffusemap模型/怪物/ failed_transfer / ft_eye_d.tga bumpmap模型/怪物/ failed_transfer / ft_eye_local.tga specularmap模型/怪物/ failed_transfer / ft_eye_s.tga inlineGuide corpseBurnEffect(models / monsters / corpseBurnEffect_sm.tga) }
第4步:设置模型的着色器 在这个阶段,您将返回到低聚合模型,
并分配您编写的着色器以制作您的法线贴图。
-
4.a打开你的低分辨率模型,并将你的着色器名称分配给模型的表面:
-
这是让事情工作的另一个关键,如果你没有正确的模型上的正确的着色器,
-
你将不会得到正确的结果。在光波击中Q和对话将出现。
-
从材质文件复制着色器名称并将其粘贴到对话框中。
-
所以在前面的例子中,你将打开medium.lwo桶模型,
-
并将model / mapobjects / strogg / barrels_and_containers / barrels / medium1_low
-
分配给模型。
- 4.b向表面分配属性:
- 在Lightwave中打开Surface Editor。
- 在左侧列中选择着色器名称(将突出显示)
- 转到基本选项卡
- 去颜色线,点击“T”按钮
- 将出现纹理编辑器对话框
- 在右中间栏中会有一个投影弹出菜单,选择UV
- 将出现一个UVmap弹出菜单
- 选择纹理紫外线图。(通常这将适用)
- 关闭纹理编辑器
- 选择颜色线上的灰色框,将出现一个颜色窗口。选择与灰色不同的颜色。(这是为了确保您的更改)关闭窗口单击确定按钮
- 转到右侧列的底部,然后单击平滑按钮。为了渲染把它放在180
4.c保存
您现在已准备好要渲染的低多边形模型。
当您激活要渲染的低聚焦时,游戏将加载模型,并看到它具有活动的着色器。
然后,它将找到着色器,并使用 renderbump 行使用您设置的参数基于高聚合模型编写targa。
步骤5:渲染
-
在计算机上安装Quake4,打开计算机上的命令提示符(转到开始,然后单击所有程序,附件,命令提示符)。
-
键入C:和打回车。
-
键入cd <您的安装目录>以更改目录。这应该指向您安装Quake4的位置。(C:\ Program Files \ id Software \ Quake 4)
-
对于纹理:键入Quake4 + renderbumpflat [-size <x> <y>] <path to model> 允许引擎找到要渲染的纹理模型。
-
在“-size” 部分中,键入您希望将纹理正常渲染的大小为8的大小。
-
它可能是32 X 32,64 X 64,128 X 128,512 X 512或甚至一个1024 X 1024。
-
要创建一个具有奇异宽高比的纹理,例如512 X 256,只需将其输入到大小部分。
-
在“ 模型路径 ”部分中,键入您的计算机上可以找到纹理的路径。
-
-
对于模型:键入Quake4 + renderbump [-size <x> <y>] [-trace <distance>] [-aa <#times aa>] [-unweld] [-overlap <size>] [-globalmap] [ -colormap] [-outline <size>] [-mergehigh] [-outline <size>] <normal map image file> <path to model>
-
点击Enter进入要在引擎中运行的法线贴图并生成。
-
法线贴图会显示给您的C:Drive。在控制台中键入退出以退出游戏。
其他渲染提示:
-
5.a加载游戏,并确保您处于Windows模式:如果游戏是全屏的renderbump 将不会工作。
5.b让renderbump渲染:在这一点上,Quake 4将开始,并且将出现一个灰色窗口。
-
该窗口将在窗口中绘制一个法线贴图。
-
完成渲染法线贴图后,窗口将变为游戏窗口,似乎冻结。此时不要中断游戏,
-
它将targa写入C盘,有时需要时间。
5.c设置着色器以在游戏中看到模型:在这一点上,你需要看看你的工作。
-
为_d,_h,_s设置临时targas,并将它们放在基础上,并将_local放在正确的目录中。
-
渲染线没有加载到游戏中,除非它被调出,所以留下它就可以了。
-
加载到ModView并看到魔法。见下面的例子:
车型/ MapObjects的/ strogg / barrels_and_containers /桶/ medium1_low { noselfShadow unsmoothedtangents renderbump -size 256 256 -trace .05 -aa 2 -mergehigh models / mapobjects / strogg / barrels_and_containers / barrels / barrel1_low_local.tga work / models / mapobjects / strogg / barrels_and_containers / barrels / barrel1_high.lwo diffusemap模型/ mapobjects / strogg / barrels_and_containers / barrels / medium1_low_d.tga bumpmap addnormals(models / mapobjects / strogg / barrels_and_containers / barrels / medium1_low_local.tga,heightmap(models / mapobjects / strogg / barrels_and_containers / barrels / medium1_low_h.tga,1)) specularmap模型/ mapobjects / strogg / barrels_and_containers / barrels / medium1_low_s.tga }
如果一切顺利,您就会为您的生物或角色呈现出您的法线贴图。
在下一部分中,我们将对潜在的可能出现的问题进行仔细的诀窍,技巧和疑难解答。
步骤6:提示和技巧 在本节中,我们将介绍一些已经添加到渲染代码中的提示和工具,
使其更容易渲染复杂的几何。
-
6.a避免 overdraw:overdraw是我们对动画片段的伤害。
-
最好的做法是让建模者建立模型并将其分成几个部分。
-
然后写一些着色器指向不同的部分,并以这种方式呈现。
-
尝试设置您的低聚焦和突出显示不相互接触的部分作为着色器名称,其余部分作为默认曲面的型号。
-
在高多边形文件中镜像低多晶硅选择,并将着色器写入新的高分片。
-
将着色器分配到低位并呈现文件。它只会渲染突出显示的内容。
-
然后渲染其他的,直到你完成。使用通道和图层组合本地地图,然后使用本地地图。
-
将其保存为targa。
- 6.b组装本地图:
-
当您有多个本地地图时,您需要将它们组合到一个地图中,
-
使用每个文件中
-
的频道,反转选择,并给自己一个三像素展开,以便在本地出现一些流血。
-
反转选择并将其拖动到另一个文件中。它应该咬到边缘。
-
一种不同的方法是放大选择并重新创建文件后,您可以使用50%的灰色采样填充负选项。
-
取消选择该文件并将文件拖动到基本文件。分配层与重叠,所有的灰色将退出。
- 6.c渲染需要时间和耐心:对于较高的多模型,像数百万个多边形范围内的生物或角色,
-
可能需要几分钟到一个小时或更长时间来渲染零件。耐心一点…
- 6.d .1,.2。.3系统:在项目初期,我们的程序员之一为渲染系统添加了一些不错的功能。
-
如果您想要渲染模型的一部分,因为奇怪的照明,或者您可能想要渲染部分模型,
-
您可以在Lightwave中的表面名称后添加.1。(或者你想要命名的内容):
-
shadername.Forehead或shadername.300或shadername.iamcool的示例,无论如何
例: 在Lightwave中,您可以将以下内容分配给曲面参数中的模型: 这是您上述示例中的基础着色器 车型/ MapObjects的/ strogg / barrels_and_containers /桶/ medium1_low 选择一个讨厌的几何几何,并按Q键输入这个 车型/ MapObjects的/ strogg / barrels_and_containers /桶/ medium1_low.1 当模型渲染时,它将首先渲染顶部着色器,然后分别渲染.1着色器。所有在同一个渲染和相同的文件。 如果你真的想要很棘手,那么说只有一个区域的模型不能正确渲染, 而且你知道你需要一个更高的跟踪值。而不是剪切和粘贴到本地地图中,选择几何并添加 models / mapobjects / strogg / barrels_and_containers / barrels / medium1_low.2 -trace .09 这将使该区域更高。唯一的缺点是它可以使一些奇怪的照明。 最好的事情是选择整个几何的几何...选择整个方面的一部分。
-
正常绘画:
-
有时你会得到奇怪的一个安静的地方,没有任何数量的翻转或改变痕迹的高度将被摆脱。
-
在这些情况下,艺术家将在Photoshop的正常地图上绘制,以摆脱anamoly。
-
正常绘画采取技能,真正了解正常地图的工作原理。
-
我们的几位艺术家绝对是在他们的法线上绘制的,
-
但是我们建议最好的做法是从正常的另一个“干净的”部分中进行切割和切割,
-
或者使用Photoshop中的克隆工具。您还可以从其他本地地图绘制细节,
-
但请确保渲染在相同的平面上,并且您无法将任何可能带入的新地图映射旋转。
步骤7:故障排除 偶尔会出现与renderbumping系统相关的问题。
-
-
一些问题可以很容易解决,而另外一些问题可能需要时间才能弄清楚。
-
当您遇到问题时,请参阅此列表...
重要! 如果某些事情无法正常等待,直到渲染完成并查看错误。
-
当渲染完成后,会看到随后弹出的打印输出。
-
十分之九,如果是着色器或模型问题,它将显示在那里。
问题和可能的修复:
-
7.a渲染窗口弹出,但没有绘制当地地图:这可以是任何数量的东西。
- 检查错误
- 检查着色器的拼写和路径
- 检查低多模型的着色器表面名称。
- 检查以确保从正确的模型渲染。
- 有时模型将有一个实际上是着色器的曲面。如果发生这种情况,游戏将被捕获在一个循环中,并且不会呈现。
7.b低或高模型不会加载:
-
检查模型是否三倍,只有三元组。
-
如果任何型号有三角形或三角形以外的其他任何模型,都不会加载。
- 高多模型可能有一些游戏不喜欢的表面。
- 很少见到这种情况,但它确实发生在一些Maya和3D Studio MAX翻译模型中。
7.c渲染在本地图中创建奇怪的颜色:
-
颜色碎片:这可能是几个不同的东西。
-
您需要提高或降低跟踪高度,或者您有一些覆盖问题。
-
对于跟踪高度,使用.1,.2 -trace .07技巧。或者重新渲染本地文件,并将这些文件放在Photoshop中。记住在重新渲染时更改local.tga的名称,否则它会覆盖本地可能是好的。
-
为了覆盖,您必须将一些零件从高模型中移出,然后单独渲染。
-
绿色/紫色切割:这种情况主要发生在未平滑的切线上,并且经常发生。
-
它可能与未平滑的切线平均更小的几何有关。
-
在游戏中,它在照明中间引起黑线。
-
要解决这个问题,您需要使用.1方法分别重新渲染该区域,
-
或者选择该区域并将其复制并粘贴到本地地图中。
7.d我的本地地图有失真:有各种原因可能会发生。首先要做的是创建一些临时纹理,
-
并让它们在游戏中看看是否真的会扭曲正常。
-
有时本地地图看起来是扭曲的,但不是。
-
一些扭曲是由于低聚合物模型缺乏聚合物。
-
根据游戏的问题和成本,您可以添加聚合物到模型来减轻问题。
7.e我有一个游戏模型,在接缝处有照明问题:
-
只有几种方法来解决这个问题,一个是确保你的皮肤被正确地涂抹,另一个是定向焊接点到另一半的UV地图。
-
这迫使低聚体以某种方式阅读。还要确保你的接缝在漫射,高度和镜面上匹配。
-
在某些情况下,您可能需要重新撕裂和重新涂覆UV以使此问题消失。
-
在进入油漆阶段之前,请确保您在游戏中加载模型,然后再进入油漆阶段以避免工作时间过长等。
7.f UVs不会转换到.obj文件:您需要遵循步骤4中的说明。
7.g模型不会出现在游戏中,或仅部分显示在游戏中:几件事可能是错误的。
-
如果您遇到此问题,错误消息会告诉您很多。
-
它将是.tga文件在错误的地方,着色器名称不好,着色器不会应用于整个表面,
-
或d3t文件覆盖渲染。
绘制漫反射,高光和高度地图:
在渲染出正常的地图后,您可以开始绘制生物或角色的漫反射,高光和高度贴图。
-
-
任何绘画程序都可以用来创建你的皮肤,但是我们在Raven使用Photoshop,
-
和大多数电脑和控制台游戏工作室一样。
- 漫射地图:漫射地图是您的皮肤的颜色部分。
-
它决定了生物的肉体,油漆工作,贴花,血液等的颜色。
-
由于您的生物或角色在游戏中有些现实,因此我们建议您使用照片参考。
-
照片参考是生锈的金属,不同类型的金属,切削油漆,血液,伤口,肉等的数码照片,
-
用于创造逼真的外观。您可以使用数码相机出去拍摄许多实物资产照片,以用于漫反射图。
-
即使使用照片参考,仍然有很多“真实”的画作在皮肤上。
对于Makron的漫反射图,艺术家在被推荐的推土机上使用了划痕油漆的照片。
-
艺术家稍微改变了颜色并进行了调整,并增加了划痕,污垢和锈迹。
-
他还使用了不同类型金属等的几张不同的照片来改变Makron的细节。
-
对于Makron暴露的肉体,他使用猪肉的照片,并加入静脉,瘀伤,撕开伤口和血液。
-
请参见推土机照片参考示例和最终的扩散如下:
镜面地图:
-
镜面地图用于添加光泽到生物皮肤的区域,突出显示边缘,并且可以帮助确定不同类型的金属,切削油漆等。
-
我相信镜面图是皮肤上最难的部分并且这三张地图最耗时。
-
在镜面上做一个非常好的工作,它会真正让你的皮肤唱歌。
我已经把Makron的镜面地图与肉体,血液,金属等的区域一并列出来。
-
您可以使用它作为确定如何进行镜面反射的基础。
-
另外,看看其他一些Q4生物的镜面,以获得更好的理解,并阅读我们的镜面地图写作。
-
这是非常基本的,但是有关如何为Quake4创建镜面映射的信息。
-
绘制漂亮镜面贴图的提示:
- 当做肉,橡胶和其他不太反光的表面使你的镜面地图上的那些区域与其他更多的反
- 射部分相关的最暗区域。
- 肉和橡胶通常不会反射很多光,因此在镜面上会比一些闪亮的金属等更暗。
- 您可以通过提高镜面区域的亮度或亮度来定义镀铬,不锈钢和其他非常反光的金属。
- 将一些“热点”的光线添加到突出显示的边缘可以真正帮助销售皮肤的现实主义。
- 使涂漆区域的反光性比以下金属稍低。如果显示出切屑区域的金属比涂漆部分更亮,皮肤将看起来更加现实。
-
- 在圆柱形和其他圆形区域的皮肤上,添加突出显示的部分或水平线将使该区域更加现实地读取,因为光线横过它。
- 您可以添加您的镜面地图的颜色百分比,以加强生物或人物皮肤上的特定颜色。
- 一个很好的例子是Nexus Protector(Stream Protector)。
- 他的身体的油漆工作是白色的,但它有一个绿色的苍白。
- 使他的镜面地图成为一种紫色,为他的皮肤创造了珠光白色。
- 在您的镜面上创造逼真的血液:在漫射上,将血液涂上一层正常的淡红色,然后为您的镜面地图滑过血液并将其反转。
- 在Photoshop中,点击图像,然后调整,然后反转。
- 这样会反转你血液的颜色信息。倒置后,血液将呈蓝绿色。
- 您可以调整亮度和强度,并将其压平到您的镜面地图上。
- 一旦到位并保存下来,血液就会变得更加现实和潮湿。见上面的例子。
高度图:高度图表示法线贴图。它用于添加叮咬,凹痕,划痕,缩进的伤口等等。
-
它只是一个灰度图像。高度图的工作方式是白色等于高度,黑色等于深度。
-
通过改变白色和黑色的强度,它会向高度图创建不同的高度和深度信息。
-
白色更亮或更强烈,高度图上指示的高度越大。
-
黑色越黑越深,你身高的深度就越深。
-
高度图只能在90度上下角度表示高度和深度。它不能指示角度信息,如法线贴图。
正确做高度图的提示:
-
不要 只是灰度法线图反转它来创建你的高度图!
-
这样做只会使高度图与正常的光矢量信息相抵触,从而消除其有效性。
- 以50%的灰色作为基础背景颜色,开始你的高度图。
- 考虑50%的灰色是完全平坦的,任何更轻的价值上升在它上面,任何比50%更低或更低的东西。
- 避免增加大量的噪音来创造高度。
- 太多的噪音只会泥泞你的身高和正常的地图,并破坏两者的有效性。
- 高度图不需要过于详细或非常忙于寻找工作。这意味着赞美正常,
- 不要超越它。
- 如果你看Makron的高度图,你会注意到这很简单。
- 所有这些都是Makron的金属身体部位和带有伤口的肉体区域的油漆工作中的划痕迹象。
- 请注意,肉体上的静脉和皱纹以相当强烈的白色提高,伤口被一些非常暗的灰色推入。
- Makron身体的金属部分的划痕是一种非常浅灰色的颜色,
- 因为油漆通常只有微米厚,当油漆在金属顶部时,划痕不会很深。
辉光地
命中地图:命中地图向引擎指示您的生物或角色的材料部分是由固体金属,空心金属,橡胶等制成的。
-
-
当特定区域被拍摄时,效果也与之相关联并起火。肉体会在射击时喷血。
-
拍摄时,金属会发出火花。混凝土会喷出灰尘和鹅卵石。我们创建了基于特定颜色的RGB设置数量的材料检测系统。
-
我们已经包括我们的材料检测颜色指南和下面的Makron的命中地图的例子。
-
由于像素密度在命中图上并不重要,所以我们通常将其大小减小一到两次以保存纹理内存。
图:辉光地图指示皮肤上发光或看起来像光的区域。 -
辉光地图通常具有100%的黑色作为其基础背景和指示灯等的颜色片段。
-
通过着色器,您可以使闪电图闪烁等。例如,我们提供了下面的Makron的发光图。
-
在我们为Quake4创建的一些发光地图上,您会注意到,一些灯光被绘制成像大灯般的灯。
-
指示您在前照灯中看到的小线条和盒子,使您的灯光更加逼真。
-
你会有更好的了解,出去看看你的汽车的前大灯,或者找到一些照片,
-
看看玻璃盖是如何被蚀刻的折射和集中从灯泡发出的光。
-
在ModView中查看您的模型:Quake4游戏附带了一个名为ModView的精美小部件,
-
可让您在绘制和更新模型时看到模型上的皮肤。
-
ModView 是一个模型查看器。
您可以在线框模式中查看模型,在所有轴上旋转模型,
更新皮肤,查看模型动画,更改照明和访问备用皮肤和模型。
-
这是一个很棒的小工具。