O processo de criação de um modelo de jogo 3D Hard Surface

Capítulo 1 Introdução

Decidi escrever aqui um pequeno (enorme) artigo sobre como faço modelos de jogos. Em geral, comecei a fazer essa arma, e me veio a ideia de que poderia tentar descrever todo o processo, de repente seria útil para alguém. Este não é apenas meu primeiro artigo, mas também meu primeiro trabalho como designer.





, , , .. , .. , , . , . , , , . . , , . , , , , .. , , , , . , , , 1.5-2 , . ( ), , , , , , .. . , , , . - , - , , . , . - , . "" "" .. . , "" "+", .





- 3ds Max 2017, Substance Painter, Substance Designer, Adobe Photoshop, UVLayout, xNormal Marmoset Toolbag, , () .





Low Poly , , . ( 1). , .





Figura 1
1

, High Poly ( ), , , Low poly, . ( 2).





Figura 2
2

. , , , .





Low Poly , ( 60), UV , , . , , . ( 3). .





Fig 3
3

. , , , , . ( 4).





Fig 4
4

, , . , , . ( ), , , , , , , , . , , . . , , .. , , . . - , - , , . , , , . , . , , . , , , , . , , , .





, , , . , , . , , , -, . , . , , , , , .





, . , , , , . , , , ( 2017), . . , «Flip», , . «EditNormals», , «Ctrl+A», «reset» . Edit Poly, Collapse to. , . «Utilites» ( 5)





Fig 5
5

"Reset XForm" «Reset Selection», , Convert to Editable poly. , , . , , , , , 100% , ( ). . . , "Utilites" MAXSript, New Sript. , , Main Toolbar - , , .. , , «Edit Bottom Appearance». , , , , , . , 100000 , , 100000 Low Poly. , .OBJ. , , , , .





:





(

subobjectLevel = 4

actionMan.executeAction 0 "40021"

$.EditablePoly.SetSelection #Face #{1..100000}

$.EditablePoly.flipNormals 1

modPanel.addModToSelection (Edit_Normals ()) ui:on

actionMan.executeAction 0 "40021"

$.modifiers[#Edit_Normals].EditNormalsMod.SetSelection #{1..100000}

$.modifiers[#Edit_Normals].EditNormalsMod.Reset ()

modPanel.addModToSelection (XForm ()) ui:on

macros.run "Modifier Stack" "Convert_to_Poly"

subobjectLevel = 4

actionMan.executeAction 0 "40021"

$.EditablePoly.SetSelection #Face #{1..100000}

$.EditablePoly.flipNormals 1

modPanel.addModToSelection (Edit_Normals ()) ui:on

actionMan.executeAction 0 "40021"

$.modifiers[#Edit_Normals].EditNormalsMod.SetSelection #{1..100000}

$.modifiers[#Edit_Normals].EditNormalsMod.Reset ()

macros.run "Modifier Stack" "Convert_to_Poly"

modPanel.addModToSelection (XForm ()) ui:on

macros.run "Modifier Stack" "Convert_to_Poly"

clearSelection()

)








2.

UVLayout. ( ), , . , UVPipe 3Ds Max, , / . , UV, Padding (), , , 4, 20 . . ( 6+).





Fig 6
6

( ), , , , , . , , , 15-20% , , UV. , ( ). , , , . , , , , , .





UV, Send, "UVLayout UV's" ( 7+), Edit Poly, Collapse To. , Unwrap UVW, , ( 8+), Unwrap UVW, . , , .





Fig 7
7
Fig 8
8

, 3Ds Max OBJ. ( 14). UVLayout, UVs New Edit. OBJ. 3Ds Max, , , , , , , , , , .





3.

Normal, Curvature Ambient Oclusion. , , , . , , , , . - , , , .





, , , , . , . . 10 Low Poly , 1, High Poly Cage, . , , , , , , , , . ( 9).





Fig 9
9

Low High poly, Cage . Cage, . , , , , , , . , . , . Cage Low Poly . , , "Projection", , . , , Low Poly, High poly, Cage. Cage.





Cage, . , , , Low Ploly , , - , . , , , . . Cage Low poly , , , Low High poly , , . , Cage Low poly , , . Cage Push. Low poly ( Clone ) Push, , . , . «Collapse To», 1 ( 10).





Fig 10
10

, , , , 2-4 . . ( 11)





Fig 11
11

, , ( ), 10 , , 10 .





, , , ( ). , , , ( 12, 13), , , , , , , , .





Fig 12
12
Fig 13
13

Cage, . , . , , , , 1, 01, . , , , .





, , Low, High Cage, . .





:





Electric_Low_1





Electric_High_1





Electric_Cage_1





, , , ( 14).





Fig 14
14

4.

xNormal, , . , 100%. , xNormal. , , High definition meshes High poly , Low definition meshes - Low Poly . Cage, Low poly , Browse external cage file . Baking options , , , , Normal, AO (Ambien Occlusion) Curvature, ( Normal Curvature Ambien Occlusion), . .TGA. , , , Substance Designer . padding (), Edge padding 2-4 4 , , 20 , , . , Substance Painter, mip mapping ( , , ), Substance Painter. Antialising (4). , Cage — Generate Map. , Cage , Low Poly , , . , Cage Low Poly. Cage , Tools, Ray distance calculator, Go, 10-15, Stop, Copy results Generate Map.





, Normal Curvature , , Marmoset Toolbag. , , Cage ( 15, 16).





Fig 15
15
Fig 16
16

, Cage, , ( 17, 18).





Fig 17
17
Fig 18
18

Substance Designer. , Substance Painter, . TGA. , , .





File - New Substance. OK. - , . , , 2 4 , 4 . Node - Blend, Add Node - Blend. , , Node - output. 2 Blend , 1 , . , Node - Blend, Node - output , . , . , ( 19+).





Fig. 19
19

AO (Ambient occlusion), . , , - , . . , . , - Normal. , , , . - High poly Low poly , , . - xNormal. , , OpenRL map renderer, , , Allow 100% occlusion, , ( 20+).





Fig. 20
20

, , , , . 2 3Ds max, 1 , 2 , Low High poly , , . 1 , Low poly , 2 High poly , . - ( 21). High Poly Low Poly, , , . , .PNG, , , , - . .





Fig. 21
21

( 22), , , , .





Fig 22
22

, , . 3 . 1 - ( ), 2 - , , , . 3 - , . , , , . , High poly , Low Poly, , , , . 1 ( 23).





Fig. 23
23

, , ( 24).





Fig. 24
24

, , , (, ).





.





, , , , , . , , , , , , . , 3-4 , , 3 . , . ( 25 26). , . , , , .





Fig. 25
25
Fig. 26
26

AO. , Substance Painter, ( 27).





Fig 27
27

5 . , OpenRL ( Normal 0 ), . , , , , ( , !), , . , . , , , . . , . Padding , , ( 28+).





Fig 28
28

, , , , , — , , , - . , , ( 29+).





Fig. 29
29

RGB ( RGB), 20 ( 10 ) ( 30+).





Fig. 30
30

, ( 31+).





Fig. 31
31

20 , , 10 ( 32+).





Fig. 32
32

, . , , , , , .





, .PNG , , . , , padding , , , . , . TGA PNG, . - . , , .TGA , , .





, , . . . ( ), , . , , , , RGB , , , . , , , ( 33+), .





Fig 33
33

, , - , , , . .





5.

. . Material ID, (Substance Painter SP) . , , . , 1, , , , Material ID. , . SP , . UV Material ID, , , . , , , , , , . , Material ID, 3Ds Max - Polygons — Material IDs, , , , Substance Designer . Slate Material Editor. Multi/Sub-object, , , , , , , , , , , , ( 34+).





Fig 34
34

, Multi/Sub-object (set number) , , ( 35+).





Fig. 35
35

( , ), . , . - ( 36+). .





Fig. 36
36

, ( 14).





, , , SP. , , .





, Substance Painter Substance Designer , , . .





, , , , , . , PBR - Metallic Roughness, , .. - PBR - Specular Glossiness, , . Mesh, Low Poly . Normal map format, OpenGL. DirectX, , (Y) . , . . 4, 2. 4, 20482048, 4 . SP , , , . , . Add, . ( 37).





Fig. 37
37

, , (set ), Material ID 3Ds Max. , . , , Edit, Project Configuration . , , , . Material ID. , . , , , , . ( 38+).





Fig. 38
38

. Marmoset Toolbag. ( 39)





Fig. 39
39

7. PBR

. . TurboSquid, , PBR MetalRough PBR SpecGloss, , - BaseColor, Diffuse, Roughness, Metallic, Normal_DirectX, Normal_OpenGL, Emissive, Glossiness, MetallicSmoothness, Opacity, Specular, Ambient occlusion. 12 , , - , - . , . , Roughness Glossiness , . Normal_DirectX Normal_OpenGL , (Y). 2, , . , MetallicSmoothness, 2 , Metallic Glossiness, Glossiness . ( 40+).





Fig 40
40

, ( 41+).





Fig 41
41

1. tagra, , Substance Designer .





2. , , , .





3. (Dilation + transperenty), . , Dilation infinite 5 , - ( 42). ( 43).





Fig. 42
42
Fig. 43
43

, padding (), . , . , UV Mip Mapping, .. padding, 4 .





4. padding Mip Mapping. Mip Mapping , . , . 4 16-20 , , . , .





5. Override padding ( 3 , padding) 3 4 . , 3 4 , . . 2, 4, .. , , 4. - . , , .





, , ( 44).





Fig. 44
44

8.

. . , , .TGA. , 60 , 12 5 . Photoshop , - . Substance Designer . , , Node ( ) , Add Node. Blend, 5 4 . output , , , . , 1 . 60 , , , . 5 , , Blend Uniform Color, . , . Normal, , R-128, G-128, B-255, Emissive , Opasity . Blend. , BaseCollor ( 45+), , , .





Fig. 45
45

Glossiness Roughness, Glossiness Invert, Blend Uniform Color , ( 46+).





Fig. 46
46

Glossiness ( 47+) , Roughness. , .





Fig. 47
47

2 Metallic MetallicSmoothness. - Metallic, , MetallicSmoothness Glossiness, Photoshop, , , Substance Designer , .





, , TGA. ? , , 1 , , , Photoshop . ( RGB, R, G, B), , , , MetallicSmoothness Glossiness. , Substance Designer. , Level, ( 48+, 49+.). Level Histogram Luminance Channel Alfa Channel.





Fig. 48
48
Fig. 49
49

Blend, , . Grayscale Conversion ( 50+).





Fig 50
50

RGB-A Merge, Blend , "RGB", "A", Grayscale Conversion, Output. , , Photoshop. , , , . ( 51+, 52+).





Fig 51
51
Fig 52
52

, , , Invert ( 53). , .





Fig 53
53

, , 3Ds Max Material ID, . , SP Vray/Corona . , , , PRO TurboSquid, , . , 2, Vray Corona.





, 3D .





9. Vray/Corona

, . SP Vray/Corona render, . , , () Corona Vray, , , . , , , BaseColor . Corona Vray , 2, Normal ( OpenGL, DirectX) Glossiness ( ). Corona Duplicate, . , , , . , $mesh_$textureSet_Diffuse, $mesh - , $textureSet - , Diffuse - . , . - . , , ( 54+).





Fig. 54
54

, Diffuse RGB , BaceColor Alpha ( 55).





Fig. 55
55

. , RGB Gray Channel, , . Vray, Corona Height, , - , . , - Normal , . Opacity, , , PBR . ( 56+).





Fig. 56
56

PBR , , PNG. . , Corona Vray, , , . HDRI . , , , .





10. Corona

, Corona render. CoronaMtl, ( ) , , . ( 57+).





Fig 57
57

Normal CoronaNormal . Normal map. , , , . Glossiness 1.0. , Vray, . , . ( 3 ) Vray, , , Corona . , . Vray , Corona - , , , Corona, - . - HDRI . , HDRI, "HDRI Haven", CoronaBitmap, HDRI HDR EXR, , , . 2 , Color Correction Corona Color Correction, , , . Scene Environment ( 58+).





Fig 58
58

( 59+). .





Fig. 59
59

( 60). , .





Fig 60
60

11. Vray

Vray. . , , , , , . , , VrayMtl ( 61+).





Fig 61
61

, 1.0. , , Gamma - Override 1.0, 2.2. ( 62+).





Fig. 62
62

Normal, Glossiness. . , . , .. , Corona render. , Vray HDRI , VRayLight, ( 63). , VrayHDRI, HDR EXR, Mapping type Spherical. VRayLight, Texture, HDRI .





Fig 63
63

Environment ( 8) (64 ).





Fig 64
64

HDRI Environment GI environment. Phisical Camera, Exposure Gain - Target 12, Vray Light Multiplier - 55. , , , Normal , Vray , Normal 300.





( 65+).





Fig. 65
65

, , ( 66).





Fig. 66
66

, 3 , - Marmoset Toolbag, - Corona, - Vray ( 67).





Fig. 67
67

Vray Corona, . , , , , , . Vray , , .. , . , . . , , . , , TurboSquid CheckMate PRO.





Havia muita informação aqui, será difícil para os iniciantes aprenderem tudo de uma vez, mas tentei transmitir tudo na linguagem mais simples. Espero que este artigo ajude alguém, talvez não tanto a trabalhar nisso, mas talvez busque maneiras mais rápidas e eficientes. Obrigado pela atenção.





O autor do artigo é Yegor Surin








All Articles