Update example.neu
This commit is contained in:
parent
c52420a78c
commit
624344b185
122
example.neu
122
example.neu
@ -1,66 +1,80 @@
|
|||||||
// & declares a key pointing to object instantiated by that declaration (in this case, we're using integers in hex)
|
// & declares a key pointing to object instantiated by that declaration (in this case, we're using integers in hex)
|
||||||
// keys are NOT indices - ultimately they should be ingested as keys to a dictionary containing each object in the Neutrino file
|
// keys are NOT indices - ultimately they should be ingested as keys to a dictionary containing each object in the Neutrino file
|
||||||
// * gets a reference to a key's object (Neutrino will try to preserve this reference in the target software whenever possible)
|
// * gets a reference to a key's object (Neutrino will try to preserve this reference in the target software whenever possible)
|
||||||
// # gets a copy of a key's object (Neutrino will simply replace this reference with a copy of its value - this is simply to consolidate repetitive data in-exchange)
|
// # gets a copy from a cached object's key (Neutrino will simply replace this reference with a copy of its value - this is simply to consolidate repetitive data in-exchange)
|
||||||
|
|
||||||
// scene graph
|
// overall structure:
|
||||||
scene {
|
/*
|
||||||
&0: object {
|
meta = {},
|
||||||
name: string = "SM_LargeWindow_A",
|
graph = {
|
||||||
mesh: mesh = *2,
|
scene = {},
|
||||||
transform: trans = {
|
assets = {}
|
||||||
|
},
|
||||||
|
cache = {}
|
||||||
|
*/
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
//
|
||||||
|
},
|
||||||
|
graph = {
|
||||||
|
// note - "scene" and "assets" are essentially namespaces
|
||||||
|
// the scene itself
|
||||||
|
scene = {
|
||||||
|
&0: object = {
|
||||||
|
name: string = "SM_LargeWindow_A",
|
||||||
|
mesh: mesh = *2,
|
||||||
|
transform: trans = {
|
||||||
|
position: vec3 = #8,
|
||||||
|
rotation: vec3 = #8,
|
||||||
|
scale: vec3 = #9,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&1: object = {
|
||||||
|
name: string = "SM_LargeWindow_A2",
|
||||||
|
mesh: mesh = *2,
|
||||||
|
transform: trans = *3
|
||||||
|
}
|
||||||
|
},
|
||||||
|
// assets used by the scene
|
||||||
|
assets {
|
||||||
|
&2: mesh {
|
||||||
|
source: path = "/Assets/Props/LargeWindowA.obj",
|
||||||
|
materials: [mat] = [*4]
|
||||||
|
},
|
||||||
|
&3: trans {
|
||||||
position: vec3 = #8,
|
position: vec3 = #8,
|
||||||
rotation: vec3 = #8,
|
rotation: vec3 = #8,
|
||||||
scale: vec3 = #9,
|
scale: vec3 = #9
|
||||||
|
},
|
||||||
|
&4: mat {
|
||||||
|
name: string = "Simple Glass",
|
||||||
|
parent: shader = *7,
|
||||||
|
// "shader.props" is a subtype of the "shader" type, which is just a namespace that keeps it from being mixed up with other "props" subtypes (like "mesh.props", etc.)
|
||||||
|
parameters: shader.props = {
|
||||||
|
albedo: tex = *6,
|
||||||
|
roughness: float = 0.15,
|
||||||
|
normal: vec4 = #a
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&5: mat {
|
||||||
|
name: string = "Blockout Grey",
|
||||||
|
parent: shader = *7,
|
||||||
|
parameters: shader.props = {
|
||||||
|
albedo: vec4 = (0.5, 0.5, 0.5, 1.0),
|
||||||
|
roughness: float = 0.85,
|
||||||
|
normal: vec4 = #a
|
||||||
|
}
|
||||||
|
},
|
||||||
|
&6: tex {
|
||||||
|
source: path = "/Assets/Textures/T_WindowGrime.png"
|
||||||
|
},
|
||||||
|
&7: shader {
|
||||||
|
source: path = "/Assets/Shaders/PBRBasic.wgsl"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
&1: object {
|
|
||||||
name: string = "SM_LargeWindow_A2",
|
|
||||||
mesh: mesh = *2,
|
|
||||||
transform: trans = *3
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
// anonymous objects shared by multiple other objects
|
||||||
// assets
|
cache {
|
||||||
assets {
|
|
||||||
&2: mesh {
|
|
||||||
source: path = "/Assets/Props/LargeWindowA.obj",
|
|
||||||
materials: [mat] = [*4]
|
|
||||||
},
|
|
||||||
&3: trans {
|
|
||||||
position: vec3 = #8,
|
|
||||||
rotation: vec3 = #8,
|
|
||||||
scale: vec3 = #9
|
|
||||||
},
|
|
||||||
&4: mat {
|
|
||||||
name: string = "Simple Glass",
|
|
||||||
parent: shader = *7,
|
|
||||||
// "shader.props" is a subtype of the "shader" type, which is just a namespace that keeps it from being mixed up with other "props" subtypes (like "mesh.props", etc.)
|
|
||||||
parameters: shader.props = {
|
|
||||||
albedo: tex = *6,
|
|
||||||
roughness: float = 0.15,
|
|
||||||
normal: vec4 = #a
|
|
||||||
}
|
|
||||||
},
|
|
||||||
&5: mat {
|
|
||||||
name: string = "Blockout Grey",
|
|
||||||
parent: shader = *7,
|
|
||||||
parameters: shader.props = {
|
|
||||||
albedo: vec4 = (0.5, 0.5, 0.5, 1.0),
|
|
||||||
roughness: float = 0.85,
|
|
||||||
normal: vec4 = #a
|
|
||||||
}
|
|
||||||
},
|
|
||||||
&6: tex {
|
|
||||||
source: path = "/Assets/Textures/T_WindowGrime.png"
|
|
||||||
},
|
|
||||||
&7: shader {
|
|
||||||
source: path = "/Assets/Shaders/PBRBasic.wgsl"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// objects shared by multiple other objects - optimization, essentially
|
|
||||||
shared {
|
|
||||||
// this vector is common as a position or rotation value
|
// this vector is common as a position or rotation value
|
||||||
&8: vec3 = (0.0, 0.0, 0.0),
|
&8: vec3 = (0.0, 0.0, 0.0),
|
||||||
// this vector is common as a scale value
|
// this vector is common as a scale value
|
||||||
|
Loading…
Reference in New Issue
Block a user