Further updates to the .psy format.

The importance change here is bundling object data and its
instances together.  This makes it possible to process the
scene data (e.g. for splitting, dicing, and de-instancing)
without having to cache arbitrary amounts of scene data.

In other words, this should allow for much more efficient
scene processing down the line.
This commit is contained in:
Nathan Vegdahl 2019-11-30 20:40:44 +09:00
parent 99b6ddfa54
commit 26b5ee3b55
2 changed files with 106 additions and 99 deletions

View File

@ -33,86 +33,92 @@ Scene $Scene_fr1 {
Color [rec709, 0.729500 0.735500 0.729000]
}
}
Objects {
RectangleLight $__Area {
Color [rec709, 84.300003 53.800003 18.500000]
Dimensions [1.350000 1.100000]
}
MeshSurface $__Plane.010_ {
SurfaceShaderBind [$White]
Vertices [-2.649998 2.959996 3.299997 -4.229996 2.469997 3.299997 -3.139998 4.559995 3.299997 -4.719996 4.059995 3.299997 -4.719996 4.059996 0.000000 -3.139998 4.559995 0.000000 -4.229996 2.469997 0.000000 -2.649998 2.959997 0.000000 ]
FaceVertCounts [4 4 4 4 4 ]
FaceVertIndices [0 1 3 2 1 0 7 6 3 1 6 4 2 3 4 5 0 2 5 7 ]
}
MeshSurface $__Plane.008_ {
SurfaceShaderBind [$White]
Vertices [-1.299999 0.649999 1.649998 -0.820000 2.249998 1.649999 -2.899997 1.139998 1.649999 -2.399998 2.719997 1.649999 -1.299999 0.649999 0.000000 -0.820000 2.249998 0.000000 -2.899997 1.139998 0.000000 -2.399998 2.719997 0.000000 ]
FaceVertCounts [4 4 4 4 4 ]
FaceVertIndices [0 2 3 1 3 2 6 7 1 3 7 5 0 1 5 4 2 0 4 6 ]
}
MeshSurface $__Plane.006_ {
SurfaceShaderBind [$Red]
Vertices [-5.495996 5.591994 0.000000 -5.527995 -0.000001 -0.000000 -5.559996 5.591993 5.487995 -5.559995 -0.000001 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
MeshSurface $__Plane.004_ {
SurfaceShaderBind [$Green]
Vertices [-0.000001 5.591995 0.000000 0.000000 0.000000 0.000000 -0.000001 5.591994 5.487995 0.000000 -0.000000 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [1 0 2 3 ]
}
MeshSurface $__Plane.002_ {
SurfaceShaderBind [$White]
Vertices [-5.495996 5.591994 0.000000 -0.000001 5.591995 0.000000 -5.559996 5.591993 5.487995 -0.000001 5.591994 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
MeshSurface $__Plane.001_ {
SurfaceShaderBind [$White]
Vertices [-5.559996 5.591993 5.487995 -0.000001 5.591994 5.487995 -5.559995 -0.000001 5.487995 0.000000 -0.000000 5.487995 -3.429997 3.319996 5.487995 -2.129998 3.319996 5.487995 -3.429997 2.269997 5.487995 -2.129998 2.269997 5.487995 ]
FaceVertCounts [4 4 4 4 ]
FaceVertIndices [1 5 4 0 0 4 6 2 2 6 7 3 7 5 1 3 ]
}
MeshSurface $__Plane_ {
SurfaceShaderBind [$White]
Vertices [-5.495996 5.591994 0.000000 -0.000001 5.591995 0.000000 -5.527995 -0.000001 -0.000000 0.000000 0.000000 0.000000 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
}
Assembly {
Instance {
Data [$__Area]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 2.779475 -2.794788 -5.498045 1.000000]
Object $__Area {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 2.779475 -2.794788 -5.498045 1.000000]
}
RectangleLight {
Color [rec709, 84.300003 53.800003 18.500000]
Dimensions [1.350000 1.100000]
}
}
Instance {
Data [$__Plane.010_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.010_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$White]
Vertices [-2.649998 2.959996 3.299997 -4.229996 2.469997 3.299997 -3.139998 4.559995 3.299997 -4.719996 4.059995 3.299997 -4.719996 4.059996 0.000000 -3.139998 4.559995 0.000000 -4.229996 2.469997 0.000000 -2.649998 2.959997 0.000000 ]
FaceVertCounts [4 4 4 4 4 ]
FaceVertIndices [0 1 3 2 1 0 7 6 3 1 6 4 2 3 4 5 0 2 5 7 ]
}
}
Instance {
Data [$__Plane.008_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.008_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$White]
Vertices [-1.299999 0.649999 1.649998 -0.820000 2.249998 1.649999 -2.899997 1.139998 1.649999 -2.399998 2.719997 1.649999 -1.299999 0.649999 0.000000 -0.820000 2.249998 0.000000 -2.899997 1.139998 0.000000 -2.399998 2.719997 0.000000 ]
FaceVertCounts [4 4 4 4 4 ]
FaceVertIndices [0 2 3 1 3 2 6 7 1 3 7 5 0 1 5 4 2 0 4 6 ]
}
}
Instance {
Data [$__Plane.006_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.006_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$Red]
Vertices [-5.495996 5.591994 0.000000 -5.527995 -0.000001 -0.000000 -5.559996 5.591993 5.487995 -5.559995 -0.000001 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
}
Instance {
Data [$__Plane.004_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.004_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$Green]
Vertices [-0.000001 5.591995 0.000000 0.000000 0.000000 0.000000 -0.000001 5.591994 5.487995 0.000000 -0.000000 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [1 0 2 3 ]
}
}
Instance {
Data [$__Plane.002_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.002_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$White]
Vertices [-5.495996 5.591994 0.000000 -0.000001 5.591995 0.000000 -5.559996 5.591993 5.487995 -0.000001 5.591994 5.487995 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
}
Instance {
Data [$__Plane.001_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane.001_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$White]
Vertices [-5.559996 5.591993 5.487995 -0.000001 5.591994 5.487995 -5.559995 -0.000001 5.487995 0.000000 -0.000000 5.487995 -3.429997 3.319996 5.487995 -2.129998 3.319996 5.487995 -3.429997 2.269997 5.487995 -2.129998 2.269997 5.487995 ]
FaceVertCounts [4 4 4 4 ]
FaceVertIndices [1 5 4 0 0 4 6 2 2 6 7 3 7 5 1 3 ]
}
}
Instance {
Data [$__Plane_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$White]
Vertices [-5.495996 5.591994 0.000000 -0.000001 5.591995 0.000000 -5.527995 -0.000001 -0.000000 0.000000 0.000000 0.000000 ]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
}
}
}

View File

@ -25,36 +25,37 @@ Scene $Scene_fr1 {
Color [rec709, 0.800000 0.800000 0.800000]
}
}
Objects {
MeshSurface $__Plane_ {
SurfaceShaderBind [$Material]
Vertices [-1.000000 -1.000000 0.000000 1.000000 -1.000000 0.000000 -1.000000 1.000000 0.000000 1.000000 1.000000 0.000000]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
MeshSurface $__Cube_ {
SurfaceShaderBind [$Material]
Vertices [1.000000 1.000000 -1.000000 1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 0.999999 1.000000 0.999999 -1.000001 1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 1.000000 ]
FaceVertCounts [4 4 4 4 4 4 ]
FaceVertIndices [0 1 2 3 4 7 6 5 0 4 5 1 1 5 6 2 2 6 7 3 4 0 3 7 ]
}
SphereLight $__Lamp {
Color [rec709, 50.000000 50.000000 50.000000]
Radius [0.100000]
}
}
Assembly {
Instance {
Data [$__Plane_]
Transform [0.078868 -0.000000 0.000000 -0.000000 -0.000000 0.078868 -0.000000 0.000000 0.000000 -0.000000 0.078868 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
Object $__Plane_ {
Instance {
Transform [0.078868 -0.000000 0.000000 -0.000000 -0.000000 0.078868 -0.000000 0.000000 0.000000 -0.000000 0.078868 -0.000000 -0.000000 0.000000 -0.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$Material]
Vertices [-1.000000 -1.000000 0.000000 1.000000 -1.000000 0.000000 -1.000000 1.000000 0.000000 1.000000 1.000000 0.000000]
FaceVertCounts [4 ]
FaceVertIndices [0 1 3 2 ]
}
}
Instance {
Data [$__Cube_]
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -1.000000 1.000000]
Object $__Cube_ {
Instance {
Transform [1.000000 -0.000000 0.000000 -0.000000 -0.000000 1.000000 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.000000 0.000000 -1.000000 1.000000]
}
MeshSurface {
SurfaceShaderBind [$Material]
Vertices [1.000000 1.000000 -1.000000 1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 0.999999 1.000000 0.999999 -1.000001 1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 1.000000 ]
FaceVertCounts [4 4 4 4 4 4 ]
FaceVertIndices [0 1 2 3 4 7 6 5 0 4 5 1 1 5 6 2 2 6 7 3 4 0 3 7 ]
}
}
Instance {
Data [$__Lamp]
Transform [0.019856 -0.060763 0.000000 -0.000000 0.015191 0.079422 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.026851 -0.125233 -4.432303 1.000000]
Object $__Lamp {
Instance {
Transform [0.019856 -0.060763 0.000000 -0.000000 0.015191 0.079422 -0.000000 0.000000 0.000000 -0.000000 1.000000 -0.000000 -0.026851 -0.125233 -4.432303 1.000000]
}
SphereLight {
Color [rec709, 50.000000 50.000000 50.000000]
Radius [0.100000]
}
}
}
}