Skip to content

Commit

Permalink
Merge branch 'Development' of https://github.com/sideeffects/GameDeve…
Browse files Browse the repository at this point in the history
…lopmentToolset into Development
  • Loading branch information
mikelyndon-sesi committed Nov 3, 2019
2 parents 07c7f3b + 40a18be commit 8179263
Show file tree
Hide file tree
Showing 118 changed files with 9,388 additions and 1,443 deletions.
335 changes: 335 additions & 0 deletions Help/icons/auto_uv_circle.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
316 changes: 316 additions & 0 deletions Help/icons/gameres.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
346 changes: 346 additions & 0 deletions Help/icons/make_loop_white.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
314 changes: 314 additions & 0 deletions Help/icons/repair_invert.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
340 changes: 340 additions & 0 deletions Help/icons/sci_fi_panels.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
330 changes: 330 additions & 0 deletions Help/icons/simple_baker.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
323 changes: 323 additions & 0 deletions Help/icons/snow_buildup.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
320 changes: 320 additions & 0 deletions Help/icons/sweep_geo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
322 changes: 322 additions & 0 deletions Help/icons/visualize_uv.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/lod_create_UI.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/make_loop_after.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/make_loop_before.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/rebirth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/retime.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/retime_after.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/retime_before.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/snow_buildup.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Help/images/visualize_uvs.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions Help/nodes/obj/gamedev--obj_impostor_camera_rig.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
= GameDev Impostor Camera Rig =

#type: node
#context: sop
#internal: gamedev::obj_impostor_camera_rig
#icon: impostorcamerarig
#tags: tech, model

""" This OBJ sets up a camera rig to be used with the [Impostor Texture ROP|Node:out/gamedev--rop_impostor_texture] """

This OBJ sets up a camera rig to be used with the [Impostor Texture ROP|Node:out/gamedev--rop_impostor_texture]. The tool sets up several cameras depending on the impostor type that gets rendered, including the lens shaders it needs.
The tool is only really useful for the beforementioned use-case.

@parameters
Impostor ROP:
This needs to point to the Impostor ROP.

105 changes: 105 additions & 0 deletions Help/nodes/out/gamedev--rop_games_baker-2.0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
= GameDev Games Baker =

#type: node
#context: sop
#internal: gamedev::rop_games_baker::2.0
#icon: COMMON/bake
#tags: tech, model

""" Generate Textures based on a High Poly to Low Poly match """

This node will Bake Geometry and Material information from a High Resolution mesh to a Low Resolution Mesh.

It is a helper wrapper around the [Bake Texture ROP|Node:out/baketexture] in order to simplify the interface.

This is the foundational ROP for the [Simple Baker SOP|Node:sop/gamedev--sop_simple_baker]

One main feature that the ROP version has is that you can bake several mesh pairs in the same bake. You can do this by adding more High Low Pairs on the Meshes MultiParm

WARNING:
The preferred node to use for baking is the [Maps Baker SOP|Node:sop/gamedev--sop_maps_baker]

@parameters
== Channels ==
Render:
Triggers the Render Execution
Controls...:
Optional ROP Settings
Meshes:
Number of High > Low Pairs
Target Mesh (LOW):
Path to the Low Resolution SOP (Target)
Source Mesh (HIGH):
Path to the High Resolution SOP (Source)
Resolution:
Size of the output textures
Base Path:
Path for the output textures. $(CHANNEL) is necessary here and will be replaced with the type of texture (basecolor, normal, etc)
Temp Directory:
Path for temporary files to be placed, some files are generated and then deleted in the process of baking all of the maps
Base Color:
Enable baking Vertex Colors (and Diffuse Textures) and specify the suffix
Normal Map:
Enable baking Tangent Space normal maps and specify the suffix
Opacity Map:
Enable baking an Opacity/Transparency/Alpha map and specify the suffix
Roughness Map:
Enable baking Roughness that is sampled from the source's material and specify the suffix
Metallic Map:
Enable baking Metallic that is sampled from the source's material and specify the suffix
World Normal Map:
Enable baking World Space normal maps and specify the suffix
Ambient Occlusion:
Enable baking Ambient Occlusion maps and specify the suffix
Curvature:
Enable baking Curvature (Substance Style) and specify the suffix
Thickness:
Enable baking Thickness maps and specify the suffix
Position:
Enable baking Position maps and specify the suffix
Height:
Enable baking Height/Displacement maps and specify the suffix
Custom Channels:
Number of Custom Maps to be baked
Attribute Name:
Point Attribute to be baked
Suffix:
`CHANNEL` value for the texture name

== Advanced ==
Valid Frame Range:
Determines if a single frame should be baked or several frames. (Useful for baking oceans and other animated effects)

NOTE:
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.

Start/End/Inc:
Start and End Frame, and what steps to skip

Use MikkT Tangent Space:
Use the MikkT calculations to bake out the Tangent Normal Maps.

NOTE:
The Viewport shader doesn't have MikkT capabilities, so you might see some bruising that won't occur on a game engine.
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.

Output basecolor in Linear Space:
Gamma correct the BaseColor maps

Tangent Normal Flip Y:
Invert the Green Channel in the Normal Map.
Disable Lighting/Emission:
Ignore any lighting information. Disabling this will allow you to bake light information into your objects (just make them white)

Cage Mesh:
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.
Border Padding:
Additional pixels at the border of each UV island
Baking Samples:
Number of Samples used for raytraced shading
Ray Bias:
Determine how much to offset the rays from the surface of the object along the normal vector.
Ray Distance:
Maximum Distance to trace for nearby surfaces. -1 means infinite distance.


54 changes: 54 additions & 0 deletions Help/nodes/out/gamedev--rop_impostor_texture.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
= GameDev Impostor Texture =

#type: node
#context: sop
#internal: gamedev::rop_impostor_texture
#icon: impostortexture
#tags: tech, model

""" The impostor tool creates texture sheets to fake 3D objects in your game engine. """

The impostor tool creates texture sheets to fake 3D objects in your game engine. The tool will create full octahedral, 3D, fixed axis and animated impostors. Below is a short video showing how to setup the tool in Houdini.
[https://www.sidefx.com/tutorials/game-tools-imposter-textures/]

@parameters
Render:
Pressing this button will render the impostor to disk.
== Base Settings ==
Render in One Image:
When this toggle is enabled, all frames of the impostor texture are generated with a lens shader instead of on a per frame basis.
Impostor Type:
This allows you to set the impostor type that has to be generated.
Source Geometry:
This needs to point to the geometry that should be rendered as an impostor.
Camera Rig:
This needs to point to an OBJ level camera rig.
Sprite Resolution:
This sets the sprite resolution. (Ex: If you have 8x8 frames at 128x128 pixels, this means a combined 1024x1024 pixel texture)
XY Frames:
Sets the number of XY frames that need to be generated for the impostor texture.
Atlas Resolution:
When Impostor Type is set to Octahedron, this controls the overall impostor texture resolution.
Octahedron Zoom:
This controls the camera zoom amount for the Octahedron impostor camera lens.
Animation Frames:
When Impostor Type is set to Animation, this controls how many frames you want to encode in the impostor.
Output Picture:
This specifies where the output texture will be saved.
Output Geo:
This specifies where the geometry generated for the Octahedral Impostor needs to be saved.
== Atlas ==
Pre Multiply:
This controls if the basecolor/beauty map alpha channel should be premultiplied.
Beauty Map:
Enables/Disables the generation of the Beauty Atlas for the impostor.
Beauty Atlas:
This specifies where the Beauty Atlas should be saved to.
Base Color Map:
Enables/Disables the generation of the Base Color Atlas for the impostor.
Base Color Atlas:
This specifies where the Base Color Atlas should be saved to.
Normals Map:
Enables/Disables the generation of the Normal Atlas for the impostor.
Normals Atlas:
This specifies where the Normal Atlas should be saved to.
29 changes: 29 additions & 0 deletions Help/nodes/shop/gamedev--shop_flowmap_shader.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
= GameDev Flowmap Shader =

#type: node
#context: sop
#internal: gamedev::shop_flowmap_shader
#icon: gamedev.png
#tags: tech, model

""" The flowmap SHOP is a glsl based viewport shader to preview flowmap shaders. """

The flowmap SHOP is a glsl based viewport shader to preview flowmap shaders. This shader is used in the sop called Flowmap Visualize, which takes vertex colors or a texture representing motion.
This shader will visualize motion by distorting the UVs based on input flowmap data.

@parameters
Diffuse Texture:
The diffuse texture visualizing the displacement by the flowmap texture. This is typically a texture resembling water, or an array of arrows to easily identify the direction of motion.
Diffuse Tiling:
This controls the tiling amount of the Diffuse Texture. Useful to adjust without having to modify any UV values.
Flowmap Mode:
This allows you to specify what kind of data drives the flowmap motion. Color will use the vertexcolors, texture will use the Flowmap Texture parm texture.
Flowmap Texture:
When Flowmap Mode is set to texture, this is the texture that will be used to drive motion.
Time:
This parameter controls the time in the shader. This needs to be animated for the shader to function properly.
Speed:
This controls the speed of the flowmap distortion.
Distortion:
This controls the intensity of the flowmap distortion.

21 changes: 21 additions & 0 deletions Help/nodes/shop/gamedev--shop_impostor_turntable_lens.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
= Gamedev Turntable Lens =

#type: node
#context: mat
#internal: mat_toon_glsl_shader
#icon: impostorturntablelens
#tags: tech, model

""" This is a CVEX based Lens Shader used to generate Impostors. """

This is a CVEX based Lens Shader used to generate Impostors inside the Impostor Texture ROP. This tool by itself is exposed because of its educational worth.

@parameters
fixed_z:
This toggle enables/disables the rendering of the geometry around the Y axis. (Z/Forward axis remains constant)
rows:
The number of rows generated for the impostor.
columns:
The number of columns generated for the impostor.
camera_width:
Sets the camera width of the lens shader. A larger camera width functions as a zoom.
22 changes: 22 additions & 0 deletions Help/nodes/shop/gamedev--shop_octahedron_impostor_lens.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
= Gamedev Octahedron Lens =

#type: node
#context: mat
#internal: mat_toon_glsl_shader
#icon: octahedronlens
#tags: tech, model

""" This is a CVEX based Lens Shader used to generate Impostors. """

This is a CVEX based Lens Shader used to generate Impostors inside the Impostor Texture ROP. This tool by itself is exposed because of its educational worth.
Please note that the lens shader code is found in the "Code" section of the HDA.

@parameters
xy_size:
This specifies the number of impostor renders there are generated for both X and Y axis. (Ex 8 would result in 64 angles)
camera_width:
Sets the camera width of the lens shader. A larger camera width allows for larger objects to be rendered.
camera_zoom:
Controls the zoom of the lens. Smaller values means more zoomed in.
imposter_mode:
Sets the type of octahedral impostor that needs to be rendered.
40 changes: 0 additions & 40 deletions Help/nodes/sop/gamedev--osm_filter.txt

This file was deleted.

78 changes: 78 additions & 0 deletions Help/nodes/sop/gamedev--sop_autouv.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
= GameDev Auto UV =

#type: node
#context: sop
#internal: gamedev::sop_autouv
#icon: auto_uv_circle
#tags: tech, model, gamedev

""" Automatically Generates UV Attributes """

One of our top nodes in our toolsset.

Several different methods for automatically generating UVs on input meshes.


@parameters
== Method ==
UV Attribute:
Name of the output attribute
Method:
Algorithm used to generate the UVs

=== Shortest Path ===
The Shortest Path method, will identify areas of high curvature on a mesh and then draw shortest paths between those points.

Collapse Distance:
Fuse Threshold in case paths are too close together
Number of Paths:
Number of high curvature points to use as path points
Convex Multiplier:
Attract the seams based on high convexity (helpful for hard surface models)
Occlusion Multiplier:
Attract the seams based on Ambient Occlusion (helpful for organic models)

=== Cluster ===
Clusters primitives based on position and normal attributes to generate islands

Number of Clusters:
Number of Islands to be generated
Normal Blur:
Blur the Normals a bit when considering which normals are close together (will merge islands together)
Random Seed:
Randomly change the clustering

=== UV Unwrap ===
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.

Planes:
Number of Projection Planes.

=== UV AutoSeam ===
Use the new [UV Autoseam|Node:sop/uvautoseam] node

Grain Tolerance:
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.
Merge Threshold:
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.


== Packing Options ==
Merge Small Islands:
Consolidates Small UV Islands into Larger Neighbors
Small Island CutOff:
Size threshold of the islands that will be merged back into larger pieces
Optimize UV Border:
Attempts to cleanup triangles that are sticking to the side of the UV island. May cause small islands to reappear
Flattening Method:
Defines how to flatten the Islands.
Orientation Mode:
How to rotate the islands when packing
Packing Iterations:
How many times to attempt fitting the islands together
Island Padding:
How many pixels to pad the islands by
Padding Resolution:
Reference Resolution for Island Padding


Loading

0 comments on commit 8179263

Please sign in to comment.