A setup of various USD files that make up vehicles and wheels. Includes variants that can be switched between. File size around 1MB, so it is very quick to test and edit. Intentionally made as a very small, simple, and easy to understand usecase of a USD setup that anyone can pick apart to see how it works.
Originally made in relation to my article on how USD can be difficult to understand: https://rystorm.com/blog/i-would-like-usd-to-succeed
Then clarified to be as simple to understand as possible in this video: https://www.youtube.com/watch?v=JixC53cQn5U
The intention is that anyone can watch this, and understand how this setup works, and why. Then they can download it, view it, and experiment with it to see how it works. The prime target audience is artists, designers, producers, and managers who are all not technical.
Asset as seen in USDView:
Or show the variant of a formula car:
And you can also individually change out each wheel to other variants:
These assets also all quickly and easily open in various other DCCs such as Maya:
Blender:
And 3dsMax:
(Creative Commons Zero, CC0) http://creativecommons.org/publicdomain/zero/1.0/
Assets modified and edited by Robin-Yann Storm https://rystorm.com/ into USD. Email contact at storm@rystorm.com 3D assets originally made by Kenney https://kenney.nl/
This is v1.1 of this asset pack.
#usda 1.0
(
customLayerData = {
string creator = "USD for Autodesk 3ds Max: v0.2.0.41 Beta"
}
defaultPrim = "wheelVintage_8angles"
metersPerUnit = 0.0254
upAxis = "Z"
)
def Mesh "wheelVintage_8angles"
{
float3[] extent = [(-1.155058e-12, -1.4, -1.4), (1.1000001, 1.4, 1.4)]
int[] faceVertexCounts = [3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3... (truncated)]
int[] faceVertexIndices = [54, 53, 7, 0, 7, 53, 29, 2, 1, 3, 1, 2, 14, 15, 4, 5, 4, 15, 51, 50, ... (truncated)]
point3f[] points = [(0.8, 1.4, -6.569393e-13), (1, 0.623, -1.079068), (0.8, 0.3623466, -1.352296... (truncated)]
color3f[] primvars:displayColor = [(0.8, 0.8, 0.8)]
texCoord2f[] primvars:map1 = [(-0.5879688, -0.3098513), (-0.8753481, 0.6414704), (0.6635104, -0.... (truncated)]
interpolation = "faceVarying"
)
int[] primvars:map1:indices = [0, 2, 1, 3, 1, 2, 4, 6, 5, 7, 5, 6, 8, 10, 9, 11, 9, 10, 12, 14, ... (truncated)]
float3[] primvars:normals = [(0.6100936, 0.7653314, 0.2050699), (0.6100936, 0.7923294, 0), (0.61... (truncated)]
interpolation = "faceVarying"
)
uniform token subdivisionScheme = "none"
uniform token subsetFamily:materialBind:familyType = "partition"
matrix4d xformOp:transform = ( (39.3701, 0, 0, 0), (0, -0.00000172092, 39.3701, 0), (0, -39.3701, -0.00000172092, 0), (0, 0, 0, 1) )
uniform token[] xformOpOrder = ["xformOp:transform"]
def GeomSubset "_1_whiteMax" (
prepend apiSchemas = ["MaterialBindingAPI"]
customData = {
dictionary "3dsmax" = {
int matId = 1
}
}
)
{
uniform token elementType = "face"
uniform token familyName = "materialBind"
int[] indices = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 2... (truncated)]
rel material:binding = </Materials/whiteMax>
}
def GeomSubset "_2_greyMediumMax" (
prepend apiSchemas = ["MaterialBindingAPI"]
customData = {
dictionary "3dsmax" = {
int matId = 2
}
}
)
{
uniform token elementType = "face"
uniform token familyName = "materialBind"
int[] indices = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,... (truncated)]
rel material:binding = </Materials/greyMediumMax>
}
def GeomSubset "_4_greyLightMax" (
prepend apiSchemas = ["MaterialBindingAPI"]
customData = {
dictionary "3dsmax" = {
int matId = 4
}
}
)
{
uniform token elementType = "face"
uniform token familyName = "materialBind"
int[] indices = [166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, ... (truncated)]
rel material:binding = </Materials/greyLightMax>
}
}