The process of creating a 3D Hard Surface game model

Chapter 1. Introduction

I decided to write here a small (huge) article on how I make game models. In general, I began to make this weapon, and the thought came that I could try to describe the whole process, suddenly it would be useful to someone. This is not only my first article, but also my first job as a designer.





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





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





Low Poly , , . ( 1). , .





Fig 1
1

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





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





There was a lot of information here, it will be difficult for beginners to learn everything at once, but I tried to convey everything in the simplest language. I hope this article will help someone, maybe not so much work on it, but perhaps look for ways faster and more efficiently. Thanks for attention.





The author of the article is Yegor Surin








All Articles