Skip to content

Commit c29c01f

Browse files
committed
[IGNORE] AutoUV and GameRes Node
1 parent b3234d0 commit c29c01f

File tree

17 files changed

+1204
-264
lines changed

17 files changed

+1204
-264
lines changed

Help/icons/auto_uv_circle.svg

Lines changed: 335 additions & 0 deletions
Loading

Help/icons/gameres.svg

Lines changed: 316 additions & 0 deletions
Loading
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
= GameDev Auto UV =
2+
3+
#type: node
4+
#context: sop
5+
#internal: gamedev::sop_autouv
6+
#icon: auto_uv_circle
7+
#tags: tech, model, gamedev
8+
9+
""" Automatically Generates UV Attributes """
10+
11+
One of our top nodes in our toolsset.
12+
13+
Several different methods for automatically generating UVs on input meshes.
14+
15+
16+
@parameters
17+
== Method ==
18+
UV Attribute:
19+
Name of the output attribute
20+
Method:
21+
Algorithm used to generate the UVs
22+
23+
=== Shortest Path ===
24+
The Shortest Path method, will identify areas of high curvature on a mesh and then draw shortest paths between those points.
25+
26+
Collapse Distance:
27+
Fuse Threshold in case paths are too close together
28+
Number of Paths:
29+
Number of high curvature points to use as path points
30+
Convex Multiplier:
31+
Attract the seams based on high convexity (helpful for hard surface models)
32+
Occlusion Multiplier:
33+
Attract the seams based on Ambient Occlusion (helpful for organic models)
34+
35+
=== Cluster ===
36+
Clusters primitives based on position and normal attributes to generate islands
37+
38+
Number of Clusters:
39+
Number of Islands to be generated
40+
Normal Blur:
41+
Blur the Normals a bit when considering which normals are close together (will merge islands together)
42+
Random Seed:
43+
Randomly change the clustering
44+
45+
=== UV Unwrap ===
46+
Use the build in UV Unwrap node. While usually not the best solution, this combined with Merge Small Islands is generally one of the best solutions.
47+
48+
Planes:
49+
Number of Projection Planes.
50+
51+
=== UV AutoSeam ===
52+
Use the new [UV Autoseam|Node:sop/uvautoseam] node
53+
54+
Grain Tolerance:
55+
When Splitting is "Curvature based", controls how sensitive grains are to changes in normal direction across surfaces. A value of zero is very sensitive and produces tiny grains. Larger values up to 1 are less sensitive and produce larger grains.
56+
Merge Threshold:
57+
Controls how often smaller grains merge to become larger islands. 0 never merges (giving the initial grains as output), 1 merges all connected grains together (giving no seams in the output). You can tweak this control, centering around 0.5, to get more or fewer seams.
58+
59+
60+
== Packing Options ==
61+
Merge Small Islands:
62+
Consolidates Small UV Islands into Larger Neighbors
63+
Small Island CutOff:
64+
Size threshold of the islands that will be merged back into larger pieces
65+
Optimize UV Border:
66+
Attempts to cleanup triangles that are sticking to the side of the UV island. May cause small islands to reappear
67+
Flattening Method:
68+
Defines how to flatten the Islands.
69+
Orientation Mode:
70+
How to rotate the islands when packing
71+
Packing Iterations:
72+
How many times to attempt fitting the islands together
73+
Island Padding:
74+
How many pixels to pad the islands by
75+
Padding Resolution:
76+
Reference Resolution for Island Padding
77+
78+
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
= GameDev GameRes =
2+
3+
#type: node
4+
#context: sop
5+
#internal: gamedev::sop_gameres::2.0
6+
#icon: gameres
7+
#tags: tech, model, gamedev
8+
9+
""" Full Pipeline Node to Take High Res Models to Low Res """
10+
11+
Single node to polyreduce, automatically UV and Bake Textures.
12+
13+
@parameters
14+
Preview:
15+
Choose which step of the pipeline to visualize
16+
== Reduce ==
17+
Number To Keep:
18+
Target Output Polygon Count
19+
Use Instant Meshes:
20+
Use the Quad Remeshing Option instead of PolyReducing
21+
Continue Reducing Within Quality Tolerance:
22+
Use a Quality Threshold instead of a target polycount to reduce
23+
Tolerance:
24+
Stop Reducing when this tolerance has been hit
25+
Use Only Original Point Positions:
26+
Use the original positions as part of the reduction
27+
Preserve Quads:
28+
Use the Quad retaining feature from the [PolyReduce SOP|Node:sop/polyreduce]
29+
Equalize Lengths:
30+
Control over if the PolyReduce should be even or more adaptive
31+
== Voxelize ==
32+
Enable Voxelization:
33+
Roundtrip the mesh through Voxels and back to polygons
34+
Resolution Preset:
35+
Helpful Presets for the Resolution, instead dealing with numbers, use some good presets for Low, Medium and High Quality
36+
[Image:/images/voxelmesh_presets.png]
37+
Resolution:
38+
If Resolution Preset is set to Custom, this will let you explicitly control the Voxel Resolution
39+
Bounding Box Relative:
40+
Do the Voxel Calculations as if the mesh was 1 unit large.
41+
Adaptivity:
42+
Controls how even the topology of the resulting mesh is. High Adaptivity values mean concentration around areas of high curvature, low curvature means even distribution of polygons
43+
[Image:/images/voxelmesh_adaptivity.png]
44+
Dilate/Erode:
45+
Voxels have an great ability of growing and shrinking, which can be used for better eroding and growing the mesh. It is similar to the Peak SOP but doesn't generate bad geometry when geometry crashed into itself.
46+
Project to Original:
47+
Optionally Ray the resulting mesh back onto the original
48+
Post Smooth Iterations:
49+
The Projection step can generate some undesirably overlapping polygons, this step can relax some of those polygons
50+
Sharpen Features:
51+
Geometry tends to soften when being voxelized, because some features might sit in between voxels. This strengthens the features and is helpful on hard surfaces.
52+
Edge Tolerance:
53+
Tolerance for what edges to consider for the Sharpen Features toggle.
54+
== Auto UV Method ==
55+
Method:
56+
Algorithm used to generate the UVs
57+
=== Shortest Path ===
58+
The Shortest Path method, will identify areas of high curvature on a mesh and then draw shortest paths between those points.
59+
60+
Collapse Distance:
61+
Fuse Threshold in case paths are too close together
62+
Number of Paths:
63+
Number of high curvature points to use as path points
64+
Convex Multiplier:
65+
Attract the seams based on high convexity (helpful for hard surface models)
66+
Occlusion Multiplier:
67+
Attract the seams based on Ambient Occlusion (helpful for organic models)
68+
69+
=== Cluster ===
70+
Clusters primitives based on position and normal attributes to generate islands
71+
72+
Number of Clusters:
73+
Number of Islands to be generated
74+
Normal Blur:
75+
Blur the Normals a bit when considering which normals are close together (will merge islands together)
76+
Random Seed:
77+
Randomly change the clustering
78+
79+
=== UV Unwrap ===
80+
Use the build in UV Unwrap node. While usually not the best solution, this combined with Merge Small Islands is generally one of the best solutions.
81+
82+
Planes:
83+
Number of Projection Planes.
84+
85+
=== UV AutoSeam ===
86+
Use the new [UV Autoseam|Node:sop/uvautoseam] node
87+
88+
Grain Tolerance:
89+
When Splitting is "Curvature based", controls how sensitive grains are to changes in normal direction across surfaces. A value of zero is very sensitive and produces tiny grains. Larger values up to 1 are less sensitive and produce larger grains.
90+
Merge Threshold:
91+
Controls how often smaller grains merge to become larger islands. 0 never merges (giving the initial grains as output), 1 merges all connected grains together (giving no seams in the output). You can tweak this control, centering around 0.5, to get more or fewer seams.
92+
93+
94+
== Packing Options ==
95+
Merge Small Islands:
96+
Consolidates Small UV Islands into Larger Neighbors
97+
Small Island CutOff:
98+
Size threshold of the islands that will be merged back into larger pieces
99+
Optimize UV Border:
100+
Attempts to cleanup triangles that are sticking to the side of the UV island. May cause small islands to reappear
101+
Flattening Method:
102+
Defines how to flatten the Islands.
103+
Orientation Mode:
104+
How to rotate the islands when packing
105+
Packing Iterations:
106+
How many times to attempt fitting the islands together
107+
Island Padding:
108+
How many pixels to pad the islands by
109+
Padding Resolution:
110+
Reference Resolution for Island Padding
111+
112+
113+
== Bake ==
114+
Auto Bake:
115+
Automatically trigger the bake step
116+
Render:
117+
Manually trigger the bake step
118+
== Baker ==
119+
Resolution:
120+
Size of the output textures
121+
Base Path:
122+
Path for the output textures. $(CHANNEL) is necessary here and will be replaced with the type of texture (basecolor, normal, etc)
123+
Export FBX:
124+
Optionally also export the incoming model as an FBX file to this path
125+
== Channels ==
126+
Vertex Color:
127+
Enable baking Vertex Colors (and Diffuse Textures) and specify the suffix
128+
Normal Map:
129+
Enable baking Tangent Space normal maps and specify the suffix
130+
Opacity Map:
131+
Enable baking an Opacity/Transparency/Alpha map and specify the suffix
132+
Roughness Map:
133+
Enable baking Roughness that is sampled from the source's material and specify the suffix
134+
Metallic Map:
135+
Enable baking Metallic that is sampled from the source's material and specify the suffix
136+
World Normal Map:
137+
Enable baking World Space normal maps and specify the suffix
138+
Ambient Occlusion:
139+
Enable baking Ambient Occlusion maps and specify the suffix
140+
Curvature:
141+
Enable baking Curvature (Substance Style) and specify the suffix
142+
Thickness:
143+
Enable baking Thickness maps and specify the suffix
144+
Position:
145+
Enable baking Position maps and specify the suffix
146+
Height:
147+
Enable baking Height/Displacement maps and specify the suffix
148+
Custom Channels:
149+
Number of Custom Maps to be baked
150+
Attribute Name:
151+
Point Attribute to be baked
152+
Suffix:
153+
`CHANNEL` value for the texture name
154+
155+
156+
== Advanced ==
157+
Valid Frame Range:
158+
Determines if a single frame should be baked or several frames. (Useful for baking oceans and other animated effects)
159+
160+
NOTE:
161+
If baking a frame range, make sure to remember to add a $F to your filenames, otherwise it will overwrite the same textures every frame.
162+
163+
Start/End/Inc:
164+
Start and End Frame, and what steps to skip
165+
166+
Use MikkT Tangent Space:
167+
Use the MikkT calculations to bake out the Tangent Normal Maps.
168+
169+
NOTE:
170+
The Viewport shader doesn't have MikkT capabilities, so you might see some bruising that won't occur on a game engine.
171+
You can use the GameDev PBR Shader in combination with the PolyFrame node if you would like to view the correct MikkT values. We understand this isn't optimal.
172+
173+
Output basecolor in Linear Space:
174+
Gamma correct the BaseColor maps
175+
176+
Tangent Normal Flip Y:
177+
Invert the Green Channel in the Normal Map.
178+
Disable Lighting/Emission:
179+
Ignore any lighting information. Disabling this will allow you to bake light information into your objects (just make them white)
180+
181+
Cage Mesh:
182+
Optional cage mesh. Must have the same topology and UVs as the UV Object. Typically a dupicate of UV Object whose vertices are slightly pushed outward. Used to determine the projection direction.
183+
Border Padding:
184+
Additional pixels at the border of each UV island
185+
Baking Samples:
186+
Number of Samples used for raytraced shading
187+
Ray Bias:
188+
Determine how much to offset the rays from the surface of the object along the normal vector.
189+
Ray Distance:
190+
Maximum Distance to trace for nearby surfaces. -1 means infinite distance.
191+
192+
193+
== Material ==
194+
Base Color:
195+
Basic Tint on the Albedo
196+
IOR:
197+
Index of Refraction, similar to the base PBR value of 0.04. High Values refract more light
198+
Roughness:
199+
How rough or smooth is the specular highlight
200+
Diffuse Map:
201+
Which channel to display as the preview map
202+
203+
File renamed without changes.

hip/retime_demoscene.hip

10.3 KB
Binary file not shown.

otls/sop_autouv.hda/INDEX__SECTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ Inputs: 1 to 1
1010
Subnet: true
1111
Python: false
1212
Empty: false
13-
Modified: Wed Oct 17 14:50:04 2018
13+
Modified: Thu Oct 24 16:08:18 2019
1414

Binary file not shown.

0 commit comments

Comments
 (0)