El proceso de creación de un modelo de juego 3D Hard Surface

Capítulo 1 Introducción

Decidí escribir aquí un pequeño (enorme) artículo sobre cómo hago modelos de juegos. En general, comencé a hacer esta arma, y ​​se me ocurrió que podía intentar describir todo el proceso, de repente sería útil para alguien. Este no es solo mi primer artículo, sino también mi primer trabajo como diseñadora.





, , , .. , .. , , . , . , , , . . , , . , , , , .. , , , , . , , , 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).





Figura 4
4

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





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





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





Figura 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+).





Figura 6
6

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





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





Figura 7
7
Figura 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).





Figura 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).





Figura 10
10

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





Figura 11
11

, , ( ), 10 , , 10 .





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





Figura 12
12
Figura 13
13

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





, , Low, High Cage, . .





:





Electric_Low_1





Electric_High_1





Electric_Cage_1





, , , ( 14).





Figura 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).





Figura 15
15
Figura 16
16

, Cage, , ( 17, 18).





Figura 17
17
Figura 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+).





Figura 19
19

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





Figura 20
20

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





Figura 21
21

( 22), , , , .





Figura 22
22

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





Figura 23
23

, , ( 24).





Figura 24
24

, , , (, ).





.





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





Figura 25
25
Figura 26
26

AO. , Substance Painter, ( 27).





Figura 27
27

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





Figura 28
28

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





Figura 29
29

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





Figura 30
30

, ( 31+).





Figura 31
31

20 , , 10 ( 32+).





Figura 32
32

, . , , , , , .





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





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





Figura 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+).





Higo 34
34

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





Figura 35
35

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





Figura 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).





Figura 37
37

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





Figura 38
38

. Marmoset Toolbag. ( 39)





Figura 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+).





Figura 40
40

, ( 41+).





Higo 41
41

1. tagra, , Substance Designer .





2. , , , .





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





Figura 42
42
Figura 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).





Figura 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+), , , .





Figura 45
45

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





Figura 46
46

Glossiness ( 47+) , Roughness. , .





Figura 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.





Figura 48
48
Figura 49
49

Blend, , . Grayscale Conversion ( 50+).





Figura 50
50

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





Figura 51
51
Figura 52
52

, , , Invert ( 53). , .





Figura 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+).





Figura 54
54

, Diffuse RGB , BaceColor Alpha ( 55).





Figura 55
55

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





Figura 56
56

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





10. Corona

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





Figura 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+).





Higo 58
58

( 59+). .





Figura 59
59

( 60). , .





Higo 60
60

11. Vray

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





Figura 61
61

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





Figura 62
62

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





Figura 63
63

Environment ( 8) (64 ).





Figura 64
64

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





( 65+).





Figura 65
65

, , ( 66).





Figura 66
66

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





Figura 67
67

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





Había mucha información aquí, será difícil para los principiantes aprender todo a la vez, pero traté de transmitir todo en el lenguaje más simple. Espero que este artículo ayude a alguien, quizás no tanto trabajar en él, pero quizás busque formas más rápidas y eficientes. Gracias por la atención.





El autor del artículo es Yegor Surin








All Articles