Skip to content

Commit

Permalink
Merge pull request #88 from AlexSchwank/feature/textureFileFormatTests
Browse files Browse the repository at this point in the history
Added first set of texture file format tests
  • Loading branch information
jcowles authored Jun 12, 2024
2 parents 8941736 + 84b3eea commit 7dabe2d
Show file tree
Hide file tree
Showing 20 changed files with 495 additions and 0 deletions.
23 changes: 23 additions & 0 deletions test_assets/TextureFileFormatTests/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Texture File Format Tests

This set of assets is intended to test support for loading and rendering basic texture file formats.

The left material for each texture case is not using opacity. The right material is.

## Screenshot

![screenshot](screenshots/all_files.png)
_usdrecord 24.03_

## File formats

| File format | Configuration | Texture |
| --- | --- | --- |
| JPEG | CMYK, 8-bit | ![jpeg cmyk 8-bit](jpeg_cmyk_8-bit.jpg) |
| JPEG | RGB, 8-bit | ![jpeg rgb 8-bit](jpeg_rgb_8-bit.jpg) |
| JPEG | Grayscale, 8-bit | ![png grayscale 8-bit](png_grayscale_8-bit.png) |
| PNG | Grayscale 8-bit | ![png grayscale 8-bit](png_grayscale_8-bit.png) |
| PNG | Grayscale, 16-bit | ![png grayscale 16-bit](png_grayscale_16-bit.png) |
| PNG | RGB, 8-bit | ![png rgb 8-bit](png_rgb_8-bit.png) |
| PNG | RGB, 16-bit | ![png rgb 16-bit](png_rgb_16-bit.png) |
| PNG | RGB, 32-bit | ![png rgb 32-bit](png_rgb_32-bit.png)|
106 changes: 106 additions & 0 deletions test_assets/TextureFileFormatTests/_scene.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
)

def Xform "Scene" (
kind = "component"
)
{
def Scope "Looks"
{
def Material "MainMaterial"
{
token outputs:surface.connect = </Scene/Looks/MainMaterial/PbrPreview.outputs:surface>

def Shader "PbrPreview"
{
uniform token info:id = "UsdPreviewSurface"
color3f inputs:diffuseColor.connect = </Scene/Looks/MainMaterial/Diffuse.outputs:rgb>
token outputs:surface
}

def Shader "Diffuse"
{
uniform token info:id = "UsdUVTexture"
float2 inputs:st.connect = </Scene/Looks/MainMaterial/Primvar.outputs:result>
float3 outputs:rgb
}

def Shader "Primvar"
{
uniform token info:id = "UsdPrimvarReader_float2"
string inputs:varname = "st"
float2 outputs:result
}
}

def Material "MainMaterialWithOpacity"
{
token outputs:surface.connect = </Scene/Looks/MainMaterialWithOpacity/PbrPreview.outputs:surface>

def Shader "PbrPreview"
{
uniform token info:id = "UsdPreviewSurface"
color3f inputs:diffuseColor.connect = </Scene/Looks/MainMaterialWithOpacity/Diffuse.outputs:rgb>
float inputs:opacity.connect = </Scene/Looks/MainMaterialWithOpacity/Diffuse.outputs:a>
token outputs:surface
}

def Shader "Diffuse"
{
uniform token info:id = "UsdUVTexture"
float2 inputs:st.connect = </Scene/Looks/MainMaterialWithOpacity/Primvar.outputs:result>
float3 outputs:rgb
float outputs:a
}

def Shader "Primvar"
{
uniform token info:id = "UsdPrimvarReader_float2"
string inputs:varname = "st"
float2 outputs:result
}
}
}

def Xform "Geom"
{
def Mesh "Backgroud"
{
color3f[] primvars:displayColor = [(0.7, 0, 0.7)] (
interpolation = "constant"
)
int[] faceVertexCounts = [4]
int[] faceVertexIndices = [0, 1, 2, 3]
point3f[] points = [(-0.1,-0.1,-0.1), (2.2,-0.1,-0.1), (2.2,1.1,-0.1), (-0.1,1.1,-0.1)]
}

def Mesh "Plane" (
prepend apiSchemas = ["MaterialBindingAPI"]
)
{
rel material:binding = </Scene/Looks/MainMaterial>
float2[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (interpolation = "vertex")
int[] faceVertexCounts = [4]
int[] faceVertexIndices = [0, 1, 2, 3]
point3f[] points = [(0,0,0), (1,0,0), (1,1,0), (0,1,0)]
}

def Mesh "PlaneWithOpacity" (
prepend apiSchemas = ["MaterialBindingAPI"]
)
{
rel material:binding = </Scene/Looks/MainMaterialWithOpacity>
float2[] primvars:st = [(0, 0), (1, 0), (1, 1), (0, 1)] (interpolation = "vertex")
int[] faceVertexCounts = [4]
int[] faceVertexIndices = [0, 1, 2, 3]
point3f[] points = [(1.1,0,0), (2.1,0,0), (2.1,1,0), (1.1,1,0)]
}
}
}
94 changes: 94 additions & 0 deletions test_assets/TextureFileFormatTests/all_files.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
)

def Scope "Scene" (
kind = "component"
)
{
def Camera "main_cam"
{
double3 xformOp:translate = (1, 3, 25)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

def Xform "jpeg" {
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]

over "jpeg_cmyk_8bit" (
references = [@./jpeg_cmyk_8-bit.usda@]
)
{
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "jpeg_grayscale_8bit" (
references = [@./jpeg_grayscale_8-bit.usda@]
)
{
double3 xformOp:translate = (0, 1.1, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "jpeg_rgb_8bit" (
references = [@./jpeg_rgb_8-bit.usda@]
)
{
double3 xformOp:translate = (0, 2.2, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}
}

def Xform "png" {
double3 xformOp:translate = (3, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]

over "png_grayscale_8bit" (
references = [@./png_grayscale_8-bit.usda@]
)
{
double3 xformOp:translate = (0, 0, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "png_grayscale_16bit" (
references = [@./png_grayscale_16-bit.usda@]
)
{
double3 xformOp:translate = (0, 1.1, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "png_rgb_8bit" (
references = [@./png_rgb_8-bit.usda@]
)
{
double3 xformOp:translate = (0, 2.2, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "png_rgb_16bit" (
references = [@./png_rgb_16-bit.usda@]
)
{
double3 xformOp:translate = (0, 3.3, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}

over "png_rgb_32bit" (
references = [@./png_rgb_32-bit.usda@]
)
{
double3 xformOp:translate = (0, 4.4, 0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions test_assets/TextureFileFormatTests/jpeg_cmyk_8-bit.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
subLayers = [
@_scene.usda@
]
)

over "Scene"
{
over "Looks"
{
over "MainMaterial"
{
over "Diffuse"
{
asset inputs:file = @jpeg_cmyk_8-bit.jpg@
}
}

over "MainMaterialWithOpacity"
{
over "Diffuse"
{
asset inputs:file = @jpeg_cmyk_8-bit.jpg@
}
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions test_assets/TextureFileFormatTests/jpeg_grayscale_8-bit.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
subLayers = [
@_scene.usda@
]
)

over "Scene"
{
over "Looks"
{
over "MainMaterial"
{
over "Diffuse"
{
asset inputs:file = @jpeg_grayscale_8-bit.jpg@
}
}

over "MainMaterialWithOpacity"
{
over "Diffuse"
{
asset inputs:file = @jpeg_grayscale_8-bit.jpg@
}
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions test_assets/TextureFileFormatTests/jpeg_rgb_8-bit.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
subLayers = [
@_scene.usda@
]
)

over "Scene"
{
over "Looks"
{
over "MainMaterial"
{
over "Diffuse"
{
asset inputs:file = @jpeg_rgb_8-bit.jpg@
}
}

over "MainMaterialWithOpacity"
{
over "Diffuse"
{
asset inputs:file = @jpeg_rgb_8-bit.jpg@
}
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions test_assets/TextureFileFormatTests/png_grayscale_16-bit.usda
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#usda 1.0
(
defaultPrim = "Scene"
upAxis = "Y"
metersPerUnit = 1
customLayerData = {
string copyright = "Copyright 2024 Apple Inc. All rights reserved."
}
subLayers = [
@_scene.usda@
]
)

over "Scene"
{
over "Looks"
{
over "MainMaterial"
{
over "Diffuse"
{
asset inputs:file = @png_grayscale_16-bit.png@
}
}

over "MainMaterialWithOpacity"
{
over "Diffuse"
{
asset inputs:file = @png_grayscale_16-bit.png@
}
}
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 7dabe2d

Please sign in to comment.