Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added first set of texture file format tests #88

Merged
merged 4 commits into from
Jun 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading