collada/header: render effect texture and image data structures
This commit is contained in:
parent
2118b1fbd9
commit
5f0f933224
@ -1,9 +1,12 @@
|
|||||||
from typing import Dict, List, Any
|
from typing import Dict, List, Any, Tuple
|
||||||
|
|
||||||
|
from operator import attrgetter
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from itertools import islice, chain
|
from itertools import islice, chain
|
||||||
|
from urllib.parse import unquote
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
import os.path
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
from collada.util import matrix_transpose, find_semantics
|
from collada.util import matrix_transpose, find_semantics
|
||||||
@ -45,28 +48,58 @@ class State:
|
|||||||
linearized_nodes: List[types.Node]
|
linearized_nodes: List[types.Node]
|
||||||
node_parents: Dict[int, int]
|
node_parents: Dict[int, int]
|
||||||
|
|
||||||
|
# image_paths: filename: path
|
||||||
|
image_paths: Dict[str, str]
|
||||||
|
|
||||||
|
# image_indices: image_id: image_index
|
||||||
|
image_indices: Dict[str, str]
|
||||||
|
|
||||||
|
# resource_names: resource compiler names already emitted
|
||||||
|
resource_names: Dict[str, str]
|
||||||
|
|
||||||
|
# effect_textures_by_texcoord: (effect_id, channel): [sampler_sid]
|
||||||
|
effect_textures_by_texcoord: Dict[Tuple[str, str], list]
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.vertex_buffer = BytesIO()
|
self.vertex_buffer = BytesIO()
|
||||||
self.index_buffer = BytesIO()
|
self.index_buffer = BytesIO()
|
||||||
self.geometry__indices = {}
|
self.geometry__indices = {}
|
||||||
self.geometry__vertex_index_tables = {}
|
self.geometry__vertex_index_tables = {}
|
||||||
self.node_names = {}
|
|
||||||
self.symbol_names = {}
|
self.symbol_names = {}
|
||||||
self.emitted_input_elements_arrays = {}
|
self.emitted_input_elements_arrays = {}
|
||||||
self.node_animation_channels = defaultdict(set)
|
self.node_animation_channels = defaultdict(set)
|
||||||
self.linearized_nodes = []
|
self.linearized_nodes = []
|
||||||
self.node_parents = {}
|
self.node_parents = {}
|
||||||
|
self.image_paths = {}
|
||||||
|
self.image_indices = {}
|
||||||
|
self.resource_names = {}
|
||||||
|
self.effect_textures_by_texcoord = defaultdict(list)
|
||||||
|
|
||||||
|
def _sanitize(name):
|
||||||
|
return name.replace(' ', '_').replace('-', '_').replace('.', '_').replace('/', '_')
|
||||||
|
|
||||||
|
def _validate_name_value(name, value):
|
||||||
|
assert name is not None, name
|
||||||
|
assert value is not None, value
|
||||||
|
assert type(name) is str, name
|
||||||
|
assert '\\' not in name, name
|
||||||
|
|
||||||
|
def sanitize_resource_name(state, name, value):
|
||||||
|
_validate_name_value(name, value)
|
||||||
|
assert '/' not in name, name
|
||||||
|
resource_name = _sanitize(name).upper()
|
||||||
|
assert resource_name not in state.resource_names or state.resource_names[resource_name] is value
|
||||||
|
state.resource_names[resource_name] = value
|
||||||
|
return resource_name
|
||||||
|
|
||||||
def sanitize_name(state, name, value, *, allow_slash=False):
|
def sanitize_name(state, name, value, *, allow_slash=False):
|
||||||
assert name is not None, value
|
_validate_name_value(name, value)
|
||||||
assert type(name) is str
|
assert ' ' not in name, name
|
||||||
if not allow_slash:
|
if not allow_slash:
|
||||||
assert '/' not in name, name
|
assert '/' not in name, name
|
||||||
c_id = name.lower().replace('-', '_').replace('.', '_').replace('/', '_')
|
c_id = _sanitize(name).lower()
|
||||||
|
assert c_id not in state.symbol_names or state.symbol_names[c_id] is value
|
||||||
assert c_id not in state.node_names or state.node_names[c_id] is value
|
|
||||||
state.symbol_names[c_id] = value
|
state.symbol_names[c_id] = value
|
||||||
|
|
||||||
return c_id
|
return c_id
|
||||||
|
|
||||||
def render_matrix(fs):
|
def render_matrix(fs):
|
||||||
@ -243,6 +276,23 @@ def find_material_symbol(geometry, material_symbol):
|
|||||||
return i # element index
|
return i # element index
|
||||||
assert False, material_symbol
|
assert False, material_symbol
|
||||||
|
|
||||||
|
def shader_to_input_set(channel_to_input_set, shader, op):
|
||||||
|
if type(shader) is types.Constant:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
shader_op = op(shader)
|
||||||
|
|
||||||
|
if type(shader_op) is types.Color:
|
||||||
|
return -1
|
||||||
|
if shader_op is None:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
assert type(shader_op) is types.Texture
|
||||||
|
texture = shader_op
|
||||||
|
assert texture.texcoord in channel_to_input_set
|
||||||
|
|
||||||
|
return channel_to_input_set[texture.texcoord]
|
||||||
|
|
||||||
def render_node_instance_geometry_instance_materials(state, collada, node_name, i, geometry, instance_materials):
|
def render_node_instance_geometry_instance_materials(state, collada, node_name, i, geometry, instance_materials):
|
||||||
yield f"instance_material const instance_materials_{node_name}_{i}[] = {{"
|
yield f"instance_material const instance_materials_{node_name}_{i}[] = {{"
|
||||||
for instance_material in instance_materials:
|
for instance_material in instance_materials:
|
||||||
@ -256,9 +306,32 @@ def render_node_instance_geometry_instance_materials(state, collada, node_name,
|
|||||||
material = collada.lookup(instance_material.target, types.Material)
|
material = collada.lookup(instance_material.target, types.Material)
|
||||||
material_name = sanitize_name(state, material.id, material)
|
material_name = sanitize_name(state, material.id, material)
|
||||||
|
|
||||||
|
channel_to_input_set = {}
|
||||||
|
for bind_vertex_input in instance_material.bind_vertex_inputs:
|
||||||
|
assert bind_vertex_input.input_semantic == "TEXCOORD", bind_vertex_input
|
||||||
|
if bind_vertex_input.semantic in channel_to_input_set:
|
||||||
|
assert channel_to_input_set[bind_vertex_input.semantic] == bind_vertex_input.input_set
|
||||||
|
else:
|
||||||
|
channel_to_input_set[bind_vertex_input.semantic] = bind_vertex_input.input_set
|
||||||
|
|
||||||
|
|
||||||
|
effect = collada.lookup(material.instance_effect.url, types.Effect)
|
||||||
|
profile_common, = effect.profile_common
|
||||||
|
shader = profile_common.technique.shader
|
||||||
|
|
||||||
|
emission_input_set = shader_to_input_set(channel_to_input_set, shader, attrgetter("emission"))
|
||||||
|
ambient_input_set = shader_to_input_set(channel_to_input_set, shader, attrgetter("ambient"))
|
||||||
|
diffuse_input_set = shader_to_input_set(channel_to_input_set, shader, attrgetter("diffuse"))
|
||||||
|
specular_input_set = shader_to_input_set(channel_to_input_set, shader, attrgetter("specular"))
|
||||||
|
|
||||||
yield "{"
|
yield "{"
|
||||||
yield f".element_index = {element_index}, // an index into mesh.triangles"
|
yield f".element_index = {element_index}, // an index into mesh.triangles"
|
||||||
yield f".material = &material_{material_name},"
|
yield f".material = &material_{material_name},"
|
||||||
|
yield ""
|
||||||
|
yield f".emission = {{ .input_set = {emission_input_set} }},"
|
||||||
|
yield f".ambient = {{ .input_set = {ambient_input_set} }},"
|
||||||
|
yield f".diffuse = {{ .input_set = {diffuse_input_set} }},"
|
||||||
|
yield f".specular = {{ .input_set = {specular_input_set} }},"
|
||||||
yield "},"
|
yield "},"
|
||||||
yield "};"
|
yield "};"
|
||||||
|
|
||||||
@ -391,14 +464,39 @@ def render_header(namespace):
|
|||||||
yield 'using namespace collada;'
|
yield 'using namespace collada;'
|
||||||
|
|
||||||
def render_opt_color(field_name, color):
|
def render_opt_color(field_name, color):
|
||||||
yield f".color = {render_float_tuple(color.value)},"
|
yield f".{field_name} = {render_float_tuple(color.value)},"
|
||||||
|
|
||||||
def render_opt_color_or_texture(field_name, color_or_texture):
|
def render_opt_texture(state, profile_common, field_name, texture):
|
||||||
|
sampler_sid = texture.texture
|
||||||
|
sampler = profile_common.sid_lookup[sampler_sid]
|
||||||
|
assert type(sampler) is types.Newparam, sampler
|
||||||
|
assert type(sampler.parameter_type) is types.Sampler2D, sampler
|
||||||
|
|
||||||
|
surface_sid = sampler.parameter_type.source.sid
|
||||||
|
surface = profile_common.sid_lookup[surface_sid]
|
||||||
|
assert type(surface) is types.Newparam, surface
|
||||||
|
assert type(surface.parameter_type) is types.Surface, surface
|
||||||
|
assert surface.parameter_type.type is types.FxSurfaceType._2D
|
||||||
|
image_id = surface.parameter_type.init_from.uri
|
||||||
|
image_index = state.image_indices[image_id]
|
||||||
|
|
||||||
|
yield f".{field_name} = {{ .image_index = {image_index} }},"
|
||||||
|
|
||||||
|
def render_opt_color_or_texture(state, profile_common, field_name, color_or_texture):
|
||||||
if color_or_texture is None:
|
if color_or_texture is None:
|
||||||
color_or_texture = types.Color(value=(0.0, 0.0, 0.0, 0.0))
|
color_or_texture = types.Color(value=(0.0, 0.0, 0.0, 0.0))
|
||||||
assert type(color_or_texture) is types.Color, color_or_texture
|
opt_type = {
|
||||||
|
types.Color: "COLOR",
|
||||||
|
types.Texture: "TEXTURE",
|
||||||
|
}[type(color_or_texture)]
|
||||||
yield f".{field_name} = {{"
|
yield f".{field_name} = {{"
|
||||||
yield from render_opt_color("color", color_or_texture)
|
yield f".type = color_or_texture_type::{opt_type},"
|
||||||
|
if type(color_or_texture) is types.Color:
|
||||||
|
yield from render_opt_color("color", color_or_texture)
|
||||||
|
elif type(color_or_texture) is types.Texture:
|
||||||
|
yield from render_opt_texture(state, profile_common, "texture", color_or_texture)
|
||||||
|
else:
|
||||||
|
assert False, color_or_texture
|
||||||
yield "},"
|
yield "},"
|
||||||
|
|
||||||
def render_opt_float(field_name, f):
|
def render_opt_float(field_name, f):
|
||||||
@ -408,7 +506,7 @@ def render_opt_float(field_name, f):
|
|||||||
|
|
||||||
def render_effect(state, collada, effect):
|
def render_effect(state, collada, effect):
|
||||||
profile_common, = effect.profile_common
|
profile_common, = effect.profile_common
|
||||||
assert profile_common.newparam == []
|
|
||||||
shader = profile_common.technique.shader
|
shader = profile_common.technique.shader
|
||||||
effect_name = sanitize_name(state, effect.id, effect)
|
effect_name = sanitize_name(state, effect.id, effect)
|
||||||
yield f"effect const effect_{effect_name} = {{"
|
yield f"effect const effect_{effect_name} = {{"
|
||||||
@ -416,40 +514,40 @@ def render_effect(state, collada, effect):
|
|||||||
if type(shader) is types.Blinn:
|
if type(shader) is types.Blinn:
|
||||||
yield ".type = effect_type::BLINN,"
|
yield ".type = effect_type::BLINN,"
|
||||||
yield ".blinn = {"
|
yield ".blinn = {"
|
||||||
yield from render_opt_color_or_texture("emission", shader.emission)
|
yield from render_opt_color_or_texture(state, profile_common, "emission", shader.emission)
|
||||||
yield from render_opt_color_or_texture("ambient", shader.ambient)
|
yield from render_opt_color_or_texture(state, profile_common, "ambient", shader.ambient)
|
||||||
yield from render_opt_color_or_texture("diffuse", shader.diffuse)
|
yield from render_opt_color_or_texture(state, profile_common, "diffuse", shader.diffuse)
|
||||||
yield from render_opt_color_or_texture("specular", shader.specular)
|
yield from render_opt_color_or_texture(state, profile_common, "specular", shader.specular)
|
||||||
yield from render_opt_float("shininess", shader.shininess)
|
yield from render_opt_float("shininess", shader.shininess)
|
||||||
yield from render_opt_color_or_texture("reflective", shader.reflective)
|
yield from render_opt_color_or_texture(state, profile_common, "reflective", shader.reflective)
|
||||||
yield from render_opt_float("reflectivity", shader.reflectivity)
|
yield from render_opt_float("reflectivity", shader.reflectivity)
|
||||||
yield from render_opt_color_or_texture("transparent", shader.transparent)
|
yield from render_opt_color_or_texture(state, profile_common, "transparent", shader.transparent)
|
||||||
yield from render_opt_float("transparency", shader.transparency)
|
yield from render_opt_float("transparency", shader.transparency)
|
||||||
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
||||||
yield "}"
|
yield "}"
|
||||||
elif type(shader) is types.Lambert:
|
elif type(shader) is types.Lambert:
|
||||||
yield ".type = effect_type::LAMBERT,"
|
yield ".type = effect_type::LAMBERT,"
|
||||||
yield ".lambert = {"
|
yield ".lambert = {"
|
||||||
yield from render_opt_color_or_texture("emission", shader.emission)
|
yield from render_opt_color_or_texture(state, profile_common, "emission", shader.emission)
|
||||||
yield from render_opt_color_or_texture("ambient", shader.ambient)
|
yield from render_opt_color_or_texture(state, profile_common, "ambient", shader.ambient)
|
||||||
yield from render_opt_color_or_texture("diffuse", shader.diffuse)
|
yield from render_opt_color_or_texture(state, profile_common, "diffuse", shader.diffuse)
|
||||||
yield from render_opt_color_or_texture("reflective", shader.reflective)
|
yield from render_opt_color_or_texture(state, profile_common, "reflective", shader.reflective)
|
||||||
yield from render_opt_float("reflectivity", shader.reflectivity)
|
yield from render_opt_float("reflectivity", shader.reflectivity)
|
||||||
yield from render_opt_color_or_texture("transparent", shader.transparent)
|
yield from render_opt_color_or_texture(state, profile_common, "transparent", shader.transparent)
|
||||||
yield from render_opt_float("transparency", shader.transparency)
|
yield from render_opt_float("transparency", shader.transparency)
|
||||||
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
||||||
yield "}"
|
yield "}"
|
||||||
elif type(shader) is types.Phong:
|
elif type(shader) is types.Phong:
|
||||||
yield ".type = effect_type::PHONG,"
|
yield ".type = effect_type::PHONG,"
|
||||||
yield ".phong = {"
|
yield ".phong = {"
|
||||||
yield from render_opt_color_or_texture("emission", shader.emission)
|
yield from render_opt_color_or_texture(state, profile_common, "emission", shader.emission)
|
||||||
yield from render_opt_color_or_texture("ambient", shader.ambient)
|
yield from render_opt_color_or_texture(state, profile_common, "ambient", shader.ambient)
|
||||||
yield from render_opt_color_or_texture("diffuse", shader.diffuse)
|
yield from render_opt_color_or_texture(state, profile_common, "diffuse", shader.diffuse)
|
||||||
yield from render_opt_color_or_texture("specular", shader.specular)
|
yield from render_opt_color_or_texture(state, profile_common, "specular", shader.specular)
|
||||||
yield from render_opt_float("shininess", shader.shininess)
|
yield from render_opt_float("shininess", shader.shininess)
|
||||||
yield from render_opt_color_or_texture("reflective", shader.reflective)
|
yield from render_opt_color_or_texture(state, profile_common, "reflective", shader.reflective)
|
||||||
yield from render_opt_float("reflectivity", shader.reflectivity)
|
yield from render_opt_float("reflectivity", shader.reflectivity)
|
||||||
yield from render_opt_color_or_texture("transparent", shader.transparent)
|
yield from render_opt_color_or_texture(state, profile_common, "transparent", shader.transparent)
|
||||||
yield from render_opt_float("transparency", shader.transparency)
|
yield from render_opt_float("transparency", shader.transparency)
|
||||||
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
||||||
yield "}"
|
yield "}"
|
||||||
@ -457,9 +555,9 @@ def render_effect(state, collada, effect):
|
|||||||
yield ".type = effect_type::CONSTANT,"
|
yield ".type = effect_type::CONSTANT,"
|
||||||
yield ".constant = {"
|
yield ".constant = {"
|
||||||
yield from render_opt_color("color", shader.color)
|
yield from render_opt_color("color", shader.color)
|
||||||
yield from render_opt_color_or_texture("reflective", shader.reflective)
|
yield from render_opt_color_or_texture(state, profile_common, "reflective", shader.reflective)
|
||||||
yield from render_opt_float("reflectivity", shader.reflectivity)
|
yield from render_opt_float("reflectivity", shader.reflectivity)
|
||||||
yield from render_opt_color_or_texture("transparent", shader.transparent)
|
yield from render_opt_color_or_texture(state, profile_common, "transparent", shader.transparent)
|
||||||
yield from render_opt_float("transparency", shader.transparency)
|
yield from render_opt_float("transparency", shader.transparency)
|
||||||
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
yield from render_opt_float("index_of_refraction", shader.index_of_refraction)
|
||||||
yield "}"
|
yield "}"
|
||||||
@ -501,6 +599,9 @@ def render_descriptor(namespace):
|
|||||||
yield ""
|
yield ""
|
||||||
yield ".inputs_list = inputs_list,"
|
yield ".inputs_list = inputs_list,"
|
||||||
yield ".inputs_list_count = (sizeof (inputs_list)) / (sizeof (inputs_list[0])),"
|
yield ".inputs_list_count = (sizeof (inputs_list)) / (sizeof (inputs_list[0])),"
|
||||||
|
yield ""
|
||||||
|
yield ".images = images,"
|
||||||
|
yield ".images_count = (sizeof (images)) / (sizeof (images[0])),"
|
||||||
yield "};"
|
yield "};"
|
||||||
|
|
||||||
def render_end_of_namespace():
|
def render_end_of_namespace():
|
||||||
@ -695,12 +796,63 @@ def render_library_lights(state, collada):
|
|||||||
for light in library_lights.lights:
|
for light in library_lights.lights:
|
||||||
yield from render_light(state, collada, light)
|
yield from render_light(state, collada, light)
|
||||||
|
|
||||||
|
def escape_space(s):
|
||||||
|
def _escape_space(s):
|
||||||
|
for c in s:
|
||||||
|
if c == ' ':
|
||||||
|
yield '\\'
|
||||||
|
yield c
|
||||||
|
return str(_escape_space(s))
|
||||||
|
|
||||||
|
def image_resource_name(state, uri):
|
||||||
|
uri = unquote(uri)
|
||||||
|
prefix = "file:///"
|
||||||
|
assert uri.startswith(prefix), uri
|
||||||
|
path = uri[len(prefix):]
|
||||||
|
assert os.path.exists(path), path
|
||||||
|
image_extensions = {".png", ".jpg", ".bmp", ".jpeg", ".tiff"}
|
||||||
|
assert os.path.splitext(path)[1].lower() in image_extensions, path
|
||||||
|
|
||||||
|
filename = os.path.split(path)[1]
|
||||||
|
assert filename not in state.image_paths, filename
|
||||||
|
state.image_paths[filename] = path
|
||||||
|
return sanitize_resource_name(state, filename, path.lower())
|
||||||
|
|
||||||
|
def render_image(state, collada, image, image_index):
|
||||||
|
assert image.id is not None
|
||||||
|
assert image.id not in state.image_indices
|
||||||
|
state.image_indices[image.id] = image_index
|
||||||
|
|
||||||
|
assert type(image.image_source) is types.InitFrom
|
||||||
|
resource_name = image_resource_name(state, image.image_source.uri)
|
||||||
|
image_name = sanitize_name(state, image.id, image)
|
||||||
|
|
||||||
|
yield f"// image_index: {image_index}"
|
||||||
|
yield f"image const image_{image_name} = {{"
|
||||||
|
yield f'.resource_name = L"{resource_name}",'
|
||||||
|
yield "};"
|
||||||
|
|
||||||
|
def render_library_images(state, collada):
|
||||||
|
image_index = 0
|
||||||
|
for library_images in collada.library_images:
|
||||||
|
for image in library_images.images:
|
||||||
|
yield from render_image(state, collada, image, image_index)
|
||||||
|
image_index += 1
|
||||||
|
|
||||||
|
yield "image const * const images[] = {"
|
||||||
|
for library_images in collada.library_images:
|
||||||
|
for image in library_images.images:
|
||||||
|
image_name = sanitize_name(state, image.id, image)
|
||||||
|
yield f"&image_{image_name},"
|
||||||
|
yield "};"
|
||||||
|
|
||||||
def render_all(collada, namespace):
|
def render_all(collada, namespace):
|
||||||
state = State()
|
state = State()
|
||||||
render, out = renderer()
|
render, out = renderer()
|
||||||
render(render_header(namespace))
|
render(render_header(namespace))
|
||||||
render(render_library_lights(state, collada))
|
render(render_library_lights(state, collada))
|
||||||
render(render_library_animations(state, collada))
|
render(render_library_animations(state, collada))
|
||||||
|
render(render_library_images(state, collada))
|
||||||
render(render_library_effects(state, collada))
|
render(render_library_effects(state, collada))
|
||||||
render(render_library_materials(state, collada))
|
render(render_library_materials(state, collada))
|
||||||
render(render_library_geometries(state, collada))
|
render(render_library_geometries(state, collada))
|
||||||
|
|||||||
@ -96,13 +96,32 @@ namespace collada {
|
|||||||
float3 color;
|
float3 color;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
// image
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
struct image {
|
||||||
|
const wchar_t * resource_name;
|
||||||
|
};
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
// effect
|
// effect
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
enum color_or_texture_type {
|
||||||
|
COLOR,
|
||||||
|
TEXTURE,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct texture {
|
||||||
|
int const image_index; // index in to images
|
||||||
|
};
|
||||||
|
|
||||||
struct color_or_texture {
|
struct color_or_texture {
|
||||||
|
color_or_texture_type type;
|
||||||
union {
|
union {
|
||||||
float4 color;
|
float4 color;
|
||||||
|
texture texture;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -216,9 +235,19 @@ namespace collada {
|
|||||||
effect const * const effect;
|
effect const * const effect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct bind_vertex_input {
|
||||||
|
int input_set; // TEXCOORD semantic input slot
|
||||||
|
};
|
||||||
|
|
||||||
struct instance_material {
|
struct instance_material {
|
||||||
int element_index; // an index into mesh.triangles
|
int const element_index; // an index into mesh.triangles
|
||||||
material const * const material;
|
material const * const material;
|
||||||
|
|
||||||
|
// heavily simplified from collada data model
|
||||||
|
bind_vertex_input const emission;
|
||||||
|
bind_vertex_input const ambient;
|
||||||
|
bind_vertex_input const diffuse;
|
||||||
|
bind_vertex_input const specular;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct instance_geometry {
|
struct instance_geometry {
|
||||||
@ -328,6 +357,9 @@ namespace collada {
|
|||||||
inputs const * const inputs_list;
|
inputs const * const inputs_list;
|
||||||
int const inputs_list_count;
|
int const inputs_list_count;
|
||||||
|
|
||||||
|
image const * const * const images;
|
||||||
|
int const images_count;
|
||||||
|
|
||||||
//animation const * const animations;
|
//animation const * const animations;
|
||||||
//int const animations_count;
|
//int const animations_count;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -6,8 +6,8 @@
|
|||||||
<authoring_tool>OpenCOLLADA for 3ds Max; Version: 1.6; Revision: 68</authoring_tool>
|
<authoring_tool>OpenCOLLADA for 3ds Max; Version: 1.6; Revision: 68</authoring_tool>
|
||||||
<source_data>file:///C:/cygwin/home/bilbo/d3d10/scenes/curve_interpolation/curve_interpolation.max</source_data>
|
<source_data>file:///C:/cygwin/home/bilbo/d3d10/scenes/curve_interpolation/curve_interpolation.max</source_data>
|
||||||
</contributor>
|
</contributor>
|
||||||
<created>2026-01-28T15:18:44</created>
|
<created>2026-01-29T17:33:59</created>
|
||||||
<modified>2026-01-28T15:18:44</modified>
|
<modified>2026-01-29T17:33:59</modified>
|
||||||
<unit name="inch" meter="0.0254"/>
|
<unit name="inch" meter="0.0254"/>
|
||||||
<up_axis>Z_UP</up_axis>
|
<up_axis>Z_UP</up_axis>
|
||||||
</asset>
|
</asset>
|
||||||
@ -377,18 +377,31 @@
|
|||||||
</technique>
|
</technique>
|
||||||
</profile_COMMON>
|
</profile_COMMON>
|
||||||
</effect>
|
</effect>
|
||||||
<effect id="ColorEffectR229G154B215">
|
<effect id="Grass">
|
||||||
<profile_COMMON>
|
<profile_COMMON>
|
||||||
|
<newparam sid="SiteWork_Planting_Grass_Bermuda1_jpg-surface">
|
||||||
|
<surface type="2D">
|
||||||
|
<init_from>SiteWork_Planting_Grass_Bermuda1_jpg</init_from>
|
||||||
|
</surface>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="SiteWork_Planting_Grass_Bermuda1_jpg-sampler">
|
||||||
|
<sampler2D>
|
||||||
|
<source>SiteWork_Planting_Grass_Bermuda1_jpg-surface</source>
|
||||||
|
</sampler2D>
|
||||||
|
</newparam>
|
||||||
<technique sid="common">
|
<technique sid="common">
|
||||||
<phong>
|
<blinn>
|
||||||
|
<emission>
|
||||||
|
<color>0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
<ambient>
|
<ambient>
|
||||||
<color>0.8980392 0.6039216 0.8431373 1</color>
|
<color>0.588 0.588 0.588 1</color>
|
||||||
</ambient>
|
</ambient>
|
||||||
<diffuse>
|
<diffuse>
|
||||||
<color>0.8980392 0.6039216 0.8431373 1</color>
|
<texture texture="SiteWork_Planting_Grass_Bermuda1_jpg-sampler" texcoord="CHANNEL1"/>
|
||||||
</diffuse>
|
</diffuse>
|
||||||
<specular>
|
<specular>
|
||||||
<color>1 1 1 1</color>
|
<color>0 0 0 1</color>
|
||||||
</specular>
|
</specular>
|
||||||
<shininess>
|
<shininess>
|
||||||
<float>10</float>
|
<float>10</float>
|
||||||
@ -396,28 +409,85 @@
|
|||||||
<reflective>
|
<reflective>
|
||||||
<color>0 0 0 1</color>
|
<color>0 0 0 1</color>
|
||||||
</reflective>
|
</reflective>
|
||||||
<transparent>
|
<transparent opaque="A_ONE">
|
||||||
<color>1 1 1 1</color>
|
<color>1 1 1 1</color>
|
||||||
</transparent>
|
</transparent>
|
||||||
<transparency>
|
<transparency>
|
||||||
<float>1</float>
|
<float>1</float>
|
||||||
</transparency>
|
</transparency>
|
||||||
</phong>
|
</blinn>
|
||||||
</technique>
|
</technique>
|
||||||
</profile_COMMON>
|
</profile_COMMON>
|
||||||
|
<extra>
|
||||||
|
<technique profile="OpenCOLLADA3dsMax">
|
||||||
|
<extended_shader>
|
||||||
|
<opacity_type sid="opacity_type" type="int">0</opacity_type>
|
||||||
|
<falloff_type sid="falloff_type" type="int">0</falloff_type>
|
||||||
|
<falloff sid="falloff" type="float">0</falloff>
|
||||||
|
<index_of_refraction sid="index_of_refraction" type="float">1.5</index_of_refraction>
|
||||||
|
<wire_size sid="wire_size" type="float">1</wire_size>
|
||||||
|
<wire_units sid="wire_units" type="int">0</wire_units>
|
||||||
|
<apply_reflection_dimming sid="apply_reflection_dimming" type="bool">0</apply_reflection_dimming>
|
||||||
|
<dim_level sid="dim_level" type="float">0</dim_level>
|
||||||
|
<reflection_level sid="reflection_level" type="float">3</reflection_level>
|
||||||
|
</extended_shader>
|
||||||
|
<shader>
|
||||||
|
<ambient_diffuse_texture_lock sid="ambient_diffuse_texture_lock" type="bool">1</ambient_diffuse_texture_lock>
|
||||||
|
<ambient_diffuse_lock sid="ambient_diffuse_lock" type="bool">1</ambient_diffuse_lock>
|
||||||
|
<diffuse_specular_lock sid="diffuse_specular_lock" type="bool">0</diffuse_specular_lock>
|
||||||
|
<use_self_illum_color sid="use_self_illum_color" type="bool">0</use_self_illum_color>
|
||||||
|
<self_illumination sid="self_illumination" type="float">0</self_illumination>
|
||||||
|
<specular_level sid="specular_level" type="float">0</specular_level>
|
||||||
|
<soften sid="soften" type="float">0.1</soften>
|
||||||
|
</shader>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
</effect>
|
</effect>
|
||||||
<effect id="ColorEffectR28G149B177">
|
<effect id="Wood">
|
||||||
<profile_COMMON>
|
<profile_COMMON>
|
||||||
|
<newparam sid="american_cherry_png-surface">
|
||||||
|
<surface type="2D">
|
||||||
|
<init_from>american_cherry_png</init_from>
|
||||||
|
</surface>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="american_cherry_png-sampler">
|
||||||
|
<sampler2D>
|
||||||
|
<source>american_cherry_png-surface</source>
|
||||||
|
</sampler2D>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="Finishes_Flooring_Tile_Square_Medium_Blue_png-surface">
|
||||||
|
<surface type="2D">
|
||||||
|
<init_from>Finishes_Flooring_Tile_Square_Medium_Blue_png</init_from>
|
||||||
|
</surface>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="Finishes_Flooring_Tile_Square_Medium_Blue_png-sampler">
|
||||||
|
<sampler2D>
|
||||||
|
<source>Finishes_Flooring_Tile_Square_Medium_Blue_png-surface</source>
|
||||||
|
</sampler2D>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="_02_png-surface">
|
||||||
|
<surface type="2D">
|
||||||
|
<init_from>_02_png</init_from>
|
||||||
|
</surface>
|
||||||
|
</newparam>
|
||||||
|
<newparam sid="_02_png-sampler">
|
||||||
|
<sampler2D>
|
||||||
|
<source>_02_png-surface</source>
|
||||||
|
</sampler2D>
|
||||||
|
</newparam>
|
||||||
<technique sid="common">
|
<technique sid="common">
|
||||||
<phong>
|
<blinn>
|
||||||
|
<emission>
|
||||||
|
<color>0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
<ambient>
|
<ambient>
|
||||||
<color>0.1098039 0.5843137 0.6941176 1</color>
|
<color>0.588 0.588 0.588 1</color>
|
||||||
</ambient>
|
</ambient>
|
||||||
<diffuse>
|
<diffuse>
|
||||||
<color>0.1098039 0.5843137 0.6941176 1</color>
|
<texture texture="american_cherry_png-sampler" texcoord="CHANNEL1"/>
|
||||||
</diffuse>
|
</diffuse>
|
||||||
<specular>
|
<specular>
|
||||||
<color>1 1 1 1</color>
|
<texture texture="Finishes_Flooring_Tile_Square_Medium_Blue_png-sampler" texcoord="CHANNEL1"/>
|
||||||
</specular>
|
</specular>
|
||||||
<shininess>
|
<shininess>
|
||||||
<float>10</float>
|
<float>10</float>
|
||||||
@ -425,15 +495,46 @@
|
|||||||
<reflective>
|
<reflective>
|
||||||
<color>0 0 0 1</color>
|
<color>0 0 0 1</color>
|
||||||
</reflective>
|
</reflective>
|
||||||
<transparent>
|
<transparent opaque="A_ONE">
|
||||||
<color>1 1 1 1</color>
|
<color>1 1 1 1</color>
|
||||||
</transparent>
|
</transparent>
|
||||||
<transparency>
|
<transparency>
|
||||||
<float>1</float>
|
<float>1</float>
|
||||||
</transparency>
|
</transparency>
|
||||||
</phong>
|
</blinn>
|
||||||
|
<extra>
|
||||||
|
<technique profile="OpenCOLLADA3dsMax">
|
||||||
|
<specularLevel>
|
||||||
|
<texture texture="_02_png-sampler" texcoord="CHANNEL1"/>
|
||||||
|
</specularLevel>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
</technique>
|
</technique>
|
||||||
</profile_COMMON>
|
</profile_COMMON>
|
||||||
|
<extra>
|
||||||
|
<technique profile="OpenCOLLADA3dsMax">
|
||||||
|
<extended_shader>
|
||||||
|
<opacity_type sid="opacity_type" type="int">0</opacity_type>
|
||||||
|
<falloff_type sid="falloff_type" type="int">0</falloff_type>
|
||||||
|
<falloff sid="falloff" type="float">0</falloff>
|
||||||
|
<index_of_refraction sid="index_of_refraction" type="float">1.5</index_of_refraction>
|
||||||
|
<wire_size sid="wire_size" type="float">1</wire_size>
|
||||||
|
<wire_units sid="wire_units" type="int">0</wire_units>
|
||||||
|
<apply_reflection_dimming sid="apply_reflection_dimming" type="bool">0</apply_reflection_dimming>
|
||||||
|
<dim_level sid="dim_level" type="float">0</dim_level>
|
||||||
|
<reflection_level sid="reflection_level" type="float">3</reflection_level>
|
||||||
|
</extended_shader>
|
||||||
|
<shader>
|
||||||
|
<ambient_diffuse_texture_lock sid="ambient_diffuse_texture_lock" type="bool">1</ambient_diffuse_texture_lock>
|
||||||
|
<ambient_diffuse_lock sid="ambient_diffuse_lock" type="bool">1</ambient_diffuse_lock>
|
||||||
|
<diffuse_specular_lock sid="diffuse_specular_lock" type="bool">0</diffuse_specular_lock>
|
||||||
|
<use_self_illum_color sid="use_self_illum_color" type="bool">0</use_self_illum_color>
|
||||||
|
<self_illumination sid="self_illumination" type="float">0</self_illumination>
|
||||||
|
<specular_level sid="specular_level" type="float">0</specular_level>
|
||||||
|
<soften sid="soften" type="float">0.1</soften>
|
||||||
|
</shader>
|
||||||
|
</technique>
|
||||||
|
</extra>
|
||||||
</effect>
|
</effect>
|
||||||
<effect id="ColorEffectR198G224B87">
|
<effect id="ColorEffectR198G224B87">
|
||||||
<profile_COMMON>
|
<profile_COMMON>
|
||||||
@ -525,12 +626,6 @@
|
|||||||
<material id="ColorEffectR26G177B26-material" name="ColorEffectR26G177B26-material">
|
<material id="ColorEffectR26G177B26-material" name="ColorEffectR26G177B26-material">
|
||||||
<instance_effect url="#ColorEffectR26G177B26"/>
|
<instance_effect url="#ColorEffectR26G177B26"/>
|
||||||
</material>
|
</material>
|
||||||
<material id="ColorEffectR229G154B215-material" name="ColorEffectR229G154B215-material">
|
|
||||||
<instance_effect url="#ColorEffectR229G154B215"/>
|
|
||||||
</material>
|
|
||||||
<material id="ColorEffectR28G149B177-material" name="ColorEffectR28G149B177-material">
|
|
||||||
<instance_effect url="#ColorEffectR28G149B177"/>
|
|
||||||
</material>
|
|
||||||
<material id="ColorEffectR198G224B87-material" name="ColorEffectR198G224B87-material">
|
<material id="ColorEffectR198G224B87-material" name="ColorEffectR198G224B87-material">
|
||||||
<instance_effect url="#ColorEffectR198G224B87"/>
|
<instance_effect url="#ColorEffectR198G224B87"/>
|
||||||
</material>
|
</material>
|
||||||
@ -552,6 +647,12 @@
|
|||||||
<material id="Material__20-material" name="Material__20">
|
<material id="Material__20-material" name="Material__20">
|
||||||
<instance_effect url="#Material__20"/>
|
<instance_effect url="#Material__20"/>
|
||||||
</material>
|
</material>
|
||||||
|
<material id="Grass-material" name="Grass">
|
||||||
|
<instance_effect url="#Grass"/>
|
||||||
|
</material>
|
||||||
|
<material id="Wood-material" name="Wood">
|
||||||
|
<instance_effect url="#Wood"/>
|
||||||
|
</material>
|
||||||
<material id="LightEmit-material" name="LightEmit">
|
<material id="LightEmit-material" name="LightEmit">
|
||||||
<instance_effect url="#LightEmit"/>
|
<instance_effect url="#LightEmit"/>
|
||||||
</material>
|
</material>
|
||||||
@ -713,7 +814,7 @@
|
|||||||
</technique_common>
|
</technique_common>
|
||||||
</source>
|
</source>
|
||||||
<source id="geom-Cylinder-map1">
|
<source id="geom-Cylinder-map1">
|
||||||
<float_array id="geom-Cylinder-map1-array" count="96">0.5975444 0.9903928 -0.25 0.691341 0.9619401 -0.25 0.7777845 0.9157352 -0.25 0.8535529 0.8535539 -0.25 0.9157345 0.7777857 -0.25 0.9619396 0.6913422 -0.25 0.9903926 0.5975457 -0.25 1 0.5000005 -0.25 0.9903927 0.4024553 -0.25 0.9619399 0.3086587 -0.25 0.915735 0.2222152 -0.25 0.8535537 0.1464469 -0.25 0.7777854 0.08426532 -0.25 0.6913419 0.03806034 -0.25 0.5975454 0.009607404 -0.25 0.5000002 0 -0.25 0.402455 0.009607315 -0.25 0.3086584 0.03806019 -0.25 0.2222149 0.08426517 -0.25 0.1464466 0.1464466 -0.25 0.08426517 0.2222149 -0.25 0.03806019 0.3086583 -0.25 0.009607345 0.4024549 -0.25 0 0.5 -0.25 0.009607345 0.5975451 -0.25 0.03806022 0.6913417 -0.25 0.08426517 0.7777851 -0.25 0.1464466 0.8535534 -0.25 0.2222148 0.9157348 -0.25 0.3086582 0.9619398 -0.25 0.4024548 0.9903927 -0.25 0.5 1 -0.25</float_array>
|
<float_array id="geom-Cylinder-map1-array" count="96">1.999001 0.9999998 0.5 1.979805 1.194895 0.5 1.922957 1.382301 0.5 1.830639 1.555015 0.5 1.706401 1.7064 0.5 1.555015 1.830639 0.5 1.382301 1.922956 0.5 1.194896 1.979805 0.5 1 1.999001 0.5 0.8051049 1.979805 0.5 0.6176993 1.922957 0.5 0.444985 1.830639 0.5 0.2935998 1.706401 0.5 0.1693612 1.555015 0.5 0.07704347 1.382301 0.5 0.02019453 1.194895 0.5 9.99033e-4 0.9999999 0.5 0.02019459 0.8051044 0.5 0.07704353 0.6176987 0.5 0.1693612 0.4449845 0.5 0.2936 0.2935994 0.5 0.4449852 0.1693608 0.5 0.6176994 0.07704329 0.5 0.8051052 0.02019441 0.5 1.000001 9.99033e-4 0.5 1.194896 0.02019471 0.5 1.382302 0.07704371 0.5 1.555016 0.1693616 0.5 1.706401 0.2936004 0.5 1.83064 0.4449857 0.5 1.922957 0.6177 0.5 1.979806 0.8051058 0.5</float_array>
|
||||||
<technique_common>
|
<technique_common>
|
||||||
<accessor source="#geom-Cylinder-map1-array" count="32" stride="3">
|
<accessor source="#geom-Cylinder-map1-array" count="32" stride="3">
|
||||||
<param name="S" type="float"/>
|
<param name="S" type="float"/>
|
||||||
@ -725,11 +826,11 @@
|
|||||||
<vertices id="geom-Cylinder-vertices">
|
<vertices id="geom-Cylinder-vertices">
|
||||||
<input semantic="POSITION" source="#geom-Cylinder-positions"/>
|
<input semantic="POSITION" source="#geom-Cylinder-positions"/>
|
||||||
</vertices>
|
</vertices>
|
||||||
<triangles material="ColorMaterial" count="30">
|
<triangles material="Grass" count="30">
|
||||||
<input semantic="VERTEX" source="#geom-Cylinder-vertices" offset="0"/>
|
<input semantic="VERTEX" source="#geom-Cylinder-vertices" offset="0"/>
|
||||||
<input semantic="NORMAL" source="#geom-Cylinder-normals" offset="1"/>
|
<input semantic="NORMAL" source="#geom-Cylinder-normals" offset="1"/>
|
||||||
<input semantic="TEXCOORD" source="#geom-Cylinder-map1" offset="2" set="0"/>
|
<input semantic="TEXCOORD" source="#geom-Cylinder-map1" offset="2" set="0"/>
|
||||||
<p>0 0 31 1 1 30 2 2 29 2 2 29 3 3 28 4 4 27 0 0 31 2 2 29 4 4 27 4 4 27 5 5 26 6 6 25 6 6 25 7 7 24 8 8 23 4 4 27 6 6 25 8 8 23 0 0 31 4 4 27 8 8 23 8 8 23 9 9 22 10 10 21 10 10 21 11 11 20 12 12 19 8 8 23 10 10 21 12 12 19 12 12 19 13 13 18 14 14 17 14 14 17 15 15 16 16 16 15 12 12 19 14 14 17 16 16 15 8 8 23 12 12 19 16 16 15 0 0 31 8 8 23 16 16 15 16 16 15 17 17 14 18 18 13 18 18 13 19 19 12 20 20 11 16 16 15 18 18 13 20 20 11 20 20 11 21 21 10 22 22 9 22 22 9 23 23 8 24 24 7 20 20 11 22 22 9 24 24 7 16 16 15 20 20 11 24 24 7 0 0 31 16 16 15 24 24 7 24 24 7 25 25 6 26 26 5 26 26 5 27 27 4 28 28 3 24 24 7 26 26 5 28 28 3 0 0 31 24 24 7 28 28 3 28 28 3 29 29 2 30 30 1 0 0 31 28 28 3 30 30 1 31 31 0 0 0 31 30 30 1</p>
|
<p>0 0 0 1 1 1 2 2 2 2 2 2 3 3 3 4 4 4 0 0 0 2 2 2 4 4 4 4 4 4 5 5 5 6 6 6 6 6 6 7 7 7 8 8 8 4 4 4 6 6 6 8 8 8 0 0 0 4 4 4 8 8 8 8 8 8 9 9 9 10 10 10 10 10 10 11 11 11 12 12 12 8 8 8 10 10 10 12 12 12 12 12 12 13 13 13 14 14 14 14 14 14 15 15 15 16 16 16 12 12 12 14 14 14 16 16 16 8 8 8 12 12 12 16 16 16 0 0 0 8 8 8 16 16 16 16 16 16 17 17 17 18 18 18 18 18 18 19 19 19 20 20 20 16 16 16 18 18 18 20 20 20 20 20 20 21 21 21 22 22 22 22 22 22 23 23 23 24 24 24 20 20 20 22 22 22 24 24 24 16 16 16 20 20 20 24 24 24 0 0 0 16 16 16 24 24 24 24 24 24 25 25 25 26 26 26 26 26 26 27 27 27 28 28 28 24 24 24 26 26 26 28 28 28 0 0 0 24 24 24 28 28 28 28 28 28 29 29 29 30 30 30 0 0 0 28 28 28 30 30 30 31 31 31 0 0 0 30 30 30</p>
|
||||||
</triangles>
|
</triangles>
|
||||||
</mesh>
|
</mesh>
|
||||||
</geometry>
|
</geometry>
|
||||||
@ -756,9 +857,9 @@
|
|||||||
</technique_common>
|
</technique_common>
|
||||||
</source>
|
</source>
|
||||||
<source id="geom-Plane-map1">
|
<source id="geom-Plane-map1">
|
||||||
<float_array id="geom-Plane-map1-array" count="24">0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 1 0</float_array>
|
<float_array id="geom-Plane-map1-array" count="12">9.99093e-4 9.9957e-4 1 1.999 9.99093e-4 1 9.9957e-4 1.999001 1 1.999001 1.999 1</float_array>
|
||||||
<technique_common>
|
<technique_common>
|
||||||
<accessor source="#geom-Plane-map1-array" count="8" stride="3">
|
<accessor source="#geom-Plane-map1-array" count="4" stride="3">
|
||||||
<param name="S" type="float"/>
|
<param name="S" type="float"/>
|
||||||
<param name="T" type="float"/>
|
<param name="T" type="float"/>
|
||||||
<param name="P" type="float"/>
|
<param name="P" type="float"/>
|
||||||
@ -768,26 +869,13 @@
|
|||||||
<vertices id="geom-Plane-vertices">
|
<vertices id="geom-Plane-vertices">
|
||||||
<input semantic="POSITION" source="#geom-Plane-positions"/>
|
<input semantic="POSITION" source="#geom-Plane-positions"/>
|
||||||
</vertices>
|
</vertices>
|
||||||
<triangles material="ColorMaterial" count="2">
|
<triangles material="Wood" count="2">
|
||||||
<input semantic="VERTEX" source="#geom-Plane-vertices" offset="0"/>
|
<input semantic="VERTEX" source="#geom-Plane-vertices" offset="0"/>
|
||||||
<input semantic="NORMAL" source="#geom-Plane-normals" offset="1"/>
|
<input semantic="NORMAL" source="#geom-Plane-normals" offset="1"/>
|
||||||
<input semantic="TEXCOORD" source="#geom-Plane-map1" offset="2" set="0"/>
|
<input semantic="TEXCOORD" source="#geom-Plane-map1" offset="2" set="0"/>
|
||||||
<p>2 0 6 0 1 4 3 2 7 1 3 5 3 2 7 0 1 4</p>
|
<p>2 0 2 0 1 0 3 2 3 1 3 1 3 2 3 0 1 0</p>
|
||||||
</triangles>
|
</triangles>
|
||||||
</mesh>
|
</mesh>
|
||||||
<extra>
|
|
||||||
<technique profile="OpenCOLLADA3dsMax">
|
|
||||||
<max_plane>
|
|
||||||
<lenght sid="lenght" type="float">14.14213</lenght>
|
|
||||||
<width sid="width" type="float">14.14213</width>
|
|
||||||
<widthsegments sid="widthsegments" type="int">1</widthsegments>
|
|
||||||
<lenghtsegments sid="lenghtsegments" type="int">1</lenghtsegments>
|
|
||||||
<density sid="density" type="float">1</density>
|
|
||||||
<scale sid="scale" type="float">1</scale>
|
|
||||||
<generateuvs sid="generateuvs" type="bool">1</generateuvs>
|
|
||||||
</max_plane>
|
|
||||||
</technique>
|
|
||||||
</extra>
|
|
||||||
</geometry>
|
</geometry>
|
||||||
<geometry id="geom-GeoSphere" name="GeoSphere">
|
<geometry id="geom-GeoSphere" name="GeoSphere">
|
||||||
<mesh>
|
<mesh>
|
||||||
@ -902,19 +990,21 @@
|
|||||||
</light>
|
</light>
|
||||||
<light id="Light-light" name="Light">
|
<light id="Light-light" name="Light">
|
||||||
<technique_common>
|
<technique_common>
|
||||||
<directional>
|
<point>
|
||||||
<color>1 1 1</color>
|
<color>1 1 1</color>
|
||||||
</directional>
|
<constant_attenuation>0</constant_attenuation>
|
||||||
|
<linear_attenuation>0</linear_attenuation>
|
||||||
|
<quadratic_attenuation>1</quadratic_attenuation>
|
||||||
|
</point>
|
||||||
</technique_common>
|
</technique_common>
|
||||||
<extra>
|
<extra>
|
||||||
<technique profile="OpenCOLLADA3dsMax">
|
<technique profile="OpenCOLLADA3dsMax">
|
||||||
<max_light>
|
<max_light>
|
||||||
<overshoot sid="overshoot" type="bool">0</overshoot>
|
|
||||||
<affect_specular sid="affect_specular" type="int">1</affect_specular>
|
<affect_specular sid="affect_specular" type="int">1</affect_specular>
|
||||||
<affect_diffuse sid="affect_diffuse" type="int">1</affect_diffuse>
|
<affect_diffuse sid="affect_diffuse" type="int">1</affect_diffuse>
|
||||||
<decay_type sid="decay_type" type="int">2</decay_type>
|
<decay_type sid="decay_type" type="int">2</decay_type>
|
||||||
<multiplier sid="multiplier" type="float">1</multiplier>
|
<multiplier sid="multiplier" type="float">1</multiplier>
|
||||||
<decay_radius sid="decay_radius" type="float">10</decay_radius>
|
<decay_radius sid="decay_radius" type="float">20</decay_radius>
|
||||||
<use_near_attenuation sid="use_near_attenuation" type="bool">0</use_near_attenuation>
|
<use_near_attenuation sid="use_near_attenuation" type="bool">0</use_near_attenuation>
|
||||||
<use_far_attenuation sid="use_far_attenuation" type="bool">0</use_far_attenuation>
|
<use_far_attenuation sid="use_far_attenuation" type="bool">0</use_far_attenuation>
|
||||||
<attenuation_near_start sid="attenuation_near_start" type="float">7</attenuation_near_start>
|
<attenuation_near_start sid="attenuation_near_start" type="float">7</attenuation_near_start>
|
||||||
@ -930,6 +1020,20 @@
|
|||||||
</extra>
|
</extra>
|
||||||
</light>
|
</light>
|
||||||
</library_lights>
|
</library_lights>
|
||||||
|
<library_images>
|
||||||
|
<image id="american_cherry_png">
|
||||||
|
<init_from>file:///C:/Program%20Files/Common%20Files/Autodesk%20Shared/Materials/Textures/1/Mats/american_cherry.png</init_from>
|
||||||
|
</image>
|
||||||
|
<image id="_02_png">
|
||||||
|
<init_from>file:///C:/Program%20Files/Common%20Files/Autodesk%20Shared/Materials/Textures/3/Mats/102.png</init_from>
|
||||||
|
</image>
|
||||||
|
<image id="Finishes_Flooring_Tile_Square_Medium_Blue_png">
|
||||||
|
<init_from>file:///C:/Program%20Files/Common%20Files/Autodesk%20Shared/Materials/Textures/3/Mats/Finishes.Flooring.Tile.Square.Medium%20Blue.png</init_from>
|
||||||
|
</image>
|
||||||
|
<image id="SiteWork_Planting_Grass_Bermuda1_jpg">
|
||||||
|
<init_from>file:///C:/Program%20Files/Common%20Files/Autodesk%20Shared/Materials/Textures/3/Mats/SiteWork.Planting.Grass.Bermuda1.jpg</init_from>
|
||||||
|
</image>
|
||||||
|
</library_images>
|
||||||
<library_visual_scenes>
|
<library_visual_scenes>
|
||||||
<visual_scene id="MaxScene">
|
<visual_scene id="MaxScene">
|
||||||
<node name="EnvironmentAmbientLight">
|
<node name="EnvironmentAmbientLight">
|
||||||
@ -984,7 +1088,9 @@
|
|||||||
<instance_geometry url="#geom-Cylinder">
|
<instance_geometry url="#geom-Cylinder">
|
||||||
<bind_material>
|
<bind_material>
|
||||||
<technique_common>
|
<technique_common>
|
||||||
<instance_material symbol="ColorMaterial" target="#ColorEffectR229G154B215-material"/>
|
<instance_material symbol="Grass" target="#Grass-material">
|
||||||
|
<bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="0"/>
|
||||||
|
</instance_material>
|
||||||
</technique_common>
|
</technique_common>
|
||||||
</bind_material>
|
</bind_material>
|
||||||
</instance_geometry>
|
</instance_geometry>
|
||||||
@ -1003,7 +1109,11 @@
|
|||||||
<instance_geometry url="#geom-Plane">
|
<instance_geometry url="#geom-Plane">
|
||||||
<bind_material>
|
<bind_material>
|
||||||
<technique_common>
|
<technique_common>
|
||||||
<instance_material symbol="ColorMaterial" target="#ColorEffectR28G149B177-material"/>
|
<instance_material symbol="Wood" target="#Wood-material">
|
||||||
|
<bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="0"/>
|
||||||
|
<bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="0"/>
|
||||||
|
<bind_vertex_input semantic="CHANNEL1" input_semantic="TEXCOORD" input_set="0"/>
|
||||||
|
</instance_material>
|
||||||
</technique_common>
|
</technique_common>
|
||||||
</bind_material>
|
</bind_material>
|
||||||
</instance_geometry>
|
</instance_geometry>
|
||||||
@ -1037,7 +1147,7 @@
|
|||||||
</extra>
|
</extra>
|
||||||
</node>
|
</node>
|
||||||
<node id="node-Light" name="Light">
|
<node id="node-Light" name="Light">
|
||||||
<translate>2.124535 8.291501 6.185831</translate>
|
<translate sid="translation">2.124535 8.291501 6.185831</translate>
|
||||||
<instance_light url="#Light-light"/>
|
<instance_light url="#Light-light"/>
|
||||||
<node id="node-LightIndicator" name="LightIndicator">
|
<node id="node-LightIndicator" name="LightIndicator">
|
||||||
<rotate>0.5773504 -0.5773501 -0.5773504 -120</rotate>
|
<rotate>0.5773504 -0.5773501 -0.5773504 -120</rotate>
|
||||||
@ -1302,6 +1412,132 @@
|
|||||||
</accessor>
|
</accessor>
|
||||||
</technique_common>
|
</technique_common>
|
||||||
</source>
|
</source>
|
||||||
|
<source id="node-Light_translation.X-input">
|
||||||
|
<float_array id="node-Light_translation.X-input-array" count="7">0 0.5 1 1.5 2 2.833333 3.333333</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.X-input-array" count="7" stride="1">
|
||||||
|
<param name="TIME" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.X-output">
|
||||||
|
<float_array id="node-Light_translation.X-output-array" count="7">2.124535 -5.611371 -5.611371 0.04967833 0.04967833 2.124535 2.124535</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.X-output-array" count="7" stride="1">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.X-intangent">
|
||||||
|
<float_array id="node-Light_translation.X-intangent-array" count="14">0.9997917 2.124535 0.33335 -5.611371 0.83335 -5.611371 1.33335 0.04967833 1.83335 0.04967833 2.555583 2.124535 3.166683 2.124535</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.X-intangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.X-outtangent">
|
||||||
|
<float_array id="node-Light_translation.X-outtangent-array" count="14">0.16665 2.124535 0.66665 -5.611371 1.16665 -5.611371 1.66665 0.04967833 2.27775 0.04967833 2.999983 2.124535 3.666564 2.124535</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.X-outtangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.X-interpolation">
|
||||||
|
<Name_array id="node-Light_translation.X-interpolation-array" count="7">BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER</Name_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.X-interpolation-array" count="7" stride="1">
|
||||||
|
<param name="INTERPOLATION" type="name"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Y-input">
|
||||||
|
<float_array id="node-Light_translation.Y-input-array" count="7">0 0.5 1 1.5 2 2.833333 3.333333</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Y-input-array" count="7" stride="1">
|
||||||
|
<param name="TIME" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Y-output">
|
||||||
|
<float_array id="node-Light_translation.Y-output-array" count="7">8.291501 0.2940993 0.2940993 -3.820096 -3.820096 8.291501 8.291501</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Y-output-array" count="7" stride="1">
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Y-intangent">
|
||||||
|
<float_array id="node-Light_translation.Y-intangent-array" count="14">0.9997917 8.291501 0.33335 0.2940993 0.83335 0.2940993 1.33335 -3.820096 1.83335 -3.820096 2.555583 8.291501 3.166683 8.291501</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Y-intangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Y-outtangent">
|
||||||
|
<float_array id="node-Light_translation.Y-outtangent-array" count="14">0.16665 8.291501 0.66665 0.2940993 1.16665 0.2940993 1.66665 -3.820096 2.27775 -3.820096 2.999983 8.291501 3.666564 8.291501</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Y-outtangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Y-interpolation">
|
||||||
|
<Name_array id="node-Light_translation.Y-interpolation-array" count="7">BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER</Name_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Y-interpolation-array" count="7" stride="1">
|
||||||
|
<param name="INTERPOLATION" type="name"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Z-input">
|
||||||
|
<float_array id="node-Light_translation.Z-input-array" count="7">0 0.5 1 1.5 2 2.833333 3.333333</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Z-input-array" count="7" stride="1">
|
||||||
|
<param name="TIME" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Z-output">
|
||||||
|
<float_array id="node-Light_translation.Z-output-array" count="7">6.185831 6.185831 6.185831 6.185831 6.185831 6.185831 6.185831</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Z-output-array" count="7" stride="1">
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Z-intangent">
|
||||||
|
<float_array id="node-Light_translation.Z-intangent-array" count="14">0.9997917 6.185831 0.33335 6.185831 0.83335 6.185831 1.33335 6.185831 1.83335 6.185831 2.555583 6.185831 3.166683 6.185831</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Z-intangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Z-outtangent">
|
||||||
|
<float_array id="node-Light_translation.Z-outtangent-array" count="14">0.16665 6.185831 0.66665 6.185831 1.16665 6.185831 1.66665 6.185831 2.27775 6.185831 2.999983 6.185831 3.666564 6.185831</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Z-outtangent-array" count="7" stride="2">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="node-Light_translation.Z-interpolation">
|
||||||
|
<Name_array id="node-Light_translation.Z-interpolation-array" count="7">BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER BEZIER</Name_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#node-Light_translation.Z-interpolation-array" count="7" stride="1">
|
||||||
|
<param name="INTERPOLATION" type="name"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
<sampler id="node-Cube_translation.X-sampler">
|
<sampler id="node-Cube_translation.X-sampler">
|
||||||
<input semantic="INPUT" source="#node-Cube_translation.X-input"/>
|
<input semantic="INPUT" source="#node-Cube_translation.X-input"/>
|
||||||
<input semantic="OUTPUT" source="#node-Cube_translation.X-output"/>
|
<input semantic="OUTPUT" source="#node-Cube_translation.X-output"/>
|
||||||
@ -1340,12 +1576,36 @@
|
|||||||
<input semantic="OUTPUT" source="#node-GeoSphere_ScaleAxisRotation-output"/>
|
<input semantic="OUTPUT" source="#node-GeoSphere_ScaleAxisRotation-output"/>
|
||||||
<input semantic="INTERPOLATION" source="#node-GeoSphere_ScaleAxisRotation-interpolation"/>
|
<input semantic="INTERPOLATION" source="#node-GeoSphere_ScaleAxisRotation-interpolation"/>
|
||||||
</sampler>
|
</sampler>
|
||||||
|
<sampler id="node-Light_translation.X-sampler">
|
||||||
|
<input semantic="INPUT" source="#node-Light_translation.X-input"/>
|
||||||
|
<input semantic="OUTPUT" source="#node-Light_translation.X-output"/>
|
||||||
|
<input semantic="IN_TANGENT" source="#node-Light_translation.X-intangent"/>
|
||||||
|
<input semantic="OUT_TANGENT" source="#node-Light_translation.X-outtangent"/>
|
||||||
|
<input semantic="INTERPOLATION" source="#node-Light_translation.X-interpolation"/>
|
||||||
|
</sampler>
|
||||||
|
<sampler id="node-Light_translation.Y-sampler">
|
||||||
|
<input semantic="INPUT" source="#node-Light_translation.Y-input"/>
|
||||||
|
<input semantic="OUTPUT" source="#node-Light_translation.Y-output"/>
|
||||||
|
<input semantic="IN_TANGENT" source="#node-Light_translation.Y-intangent"/>
|
||||||
|
<input semantic="OUT_TANGENT" source="#node-Light_translation.Y-outtangent"/>
|
||||||
|
<input semantic="INTERPOLATION" source="#node-Light_translation.Y-interpolation"/>
|
||||||
|
</sampler>
|
||||||
|
<sampler id="node-Light_translation.Z-sampler">
|
||||||
|
<input semantic="INPUT" source="#node-Light_translation.Z-input"/>
|
||||||
|
<input semantic="OUTPUT" source="#node-Light_translation.Z-output"/>
|
||||||
|
<input semantic="IN_TANGENT" source="#node-Light_translation.Z-intangent"/>
|
||||||
|
<input semantic="OUT_TANGENT" source="#node-Light_translation.Z-outtangent"/>
|
||||||
|
<input semantic="INTERPOLATION" source="#node-Light_translation.Z-interpolation"/>
|
||||||
|
</sampler>
|
||||||
<channel source="#node-Cube_translation.X-sampler" target="node-Cube/translation.X"/>
|
<channel source="#node-Cube_translation.X-sampler" target="node-Cube/translation.X"/>
|
||||||
<channel source="#node-Cube_translation.Y-sampler" target="node-Cube/translation.Y"/>
|
<channel source="#node-Cube_translation.Y-sampler" target="node-Cube/translation.Y"/>
|
||||||
<channel source="#node-Torus_rotationX.ANGLE-sampler" target="node-Torus/rotationX.ANGLE"/>
|
<channel source="#node-Torus_rotationX.ANGLE-sampler" target="node-Torus/rotationX.ANGLE"/>
|
||||||
<channel source="#node-GeoSphere_scale-sampler" target="node-GeoSphere/scale"/>
|
<channel source="#node-GeoSphere_scale-sampler" target="node-GeoSphere/scale"/>
|
||||||
<channel source="#node-GeoSphere_InverseScaleAxisRotation-sampler" target="node-GeoSphere/InverseScaleAxisRotation"/>
|
<channel source="#node-GeoSphere_InverseScaleAxisRotation-sampler" target="node-GeoSphere/InverseScaleAxisRotation"/>
|
||||||
<channel source="#node-GeoSphere_ScaleAxisRotation-sampler" target="node-GeoSphere/ScaleAxisRotation"/>
|
<channel source="#node-GeoSphere_ScaleAxisRotation-sampler" target="node-GeoSphere/ScaleAxisRotation"/>
|
||||||
|
<channel source="#node-Light_translation.X-sampler" target="node-Light/translation.X"/>
|
||||||
|
<channel source="#node-Light_translation.Y-sampler" target="node-Light/translation.Y"/>
|
||||||
|
<channel source="#node-Light_translation.Z-sampler" target="node-Light/translation.Z"/>
|
||||||
</animation>
|
</animation>
|
||||||
</library_animations>
|
</library_animations>
|
||||||
<scene>
|
<scene>
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -22,6 +22,19 @@ cbuffer cbPerMaterial
|
|||||||
float4 Diffuse;
|
float4 Diffuse;
|
||||||
float4 Specular;
|
float4 Specular;
|
||||||
float Shininess;
|
float Shininess;
|
||||||
|
|
||||||
|
int4 TextureChannel;
|
||||||
|
};
|
||||||
|
|
||||||
|
Texture2D TexEmission;
|
||||||
|
Texture2D TexAmbient;
|
||||||
|
Texture2D TexDiffuse;
|
||||||
|
Texture2D TexSpecular;
|
||||||
|
|
||||||
|
SamplerState samLinear {
|
||||||
|
Filter = MIN_MAG_MIP_LINEAR;
|
||||||
|
AddressU = Wrap;
|
||||||
|
AddressV = Wrap;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct VS_INPUT
|
struct VS_INPUT
|
||||||
|
|||||||
@ -10,7 +10,7 @@ light const light_environmentambientlight = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
light const light_light_light = {
|
light const light_light_light = {
|
||||||
.type = light_type::DIRECTIONAL,
|
.type = light_type::POINT,
|
||||||
.color = { 1.0f, 1.0f, 1.0f },
|
.color = { 1.0f, 1.0f, 1.0f },
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -364,6 +364,255 @@ sampler const sampler_node_geosphere_scaleaxisrotation_sampler = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_x_input_array[] = {
|
||||||
|
0.0f,
|
||||||
|
0.5f,
|
||||||
|
1.0f,
|
||||||
|
1.5f,
|
||||||
|
2.0f,
|
||||||
|
2.833333f,
|
||||||
|
3.333333f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_x_output_array[] = {
|
||||||
|
2.124535f,
|
||||||
|
-5.611371f,
|
||||||
|
-5.611371f,
|
||||||
|
0.04967833f,
|
||||||
|
0.04967833f,
|
||||||
|
2.124535f,
|
||||||
|
2.124535f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_x_intangent_array[] = {
|
||||||
|
0.9997917f, 2.124535f,
|
||||||
|
0.33335f, -5.611371f,
|
||||||
|
0.83335f, -5.611371f,
|
||||||
|
1.33335f, 0.04967833f,
|
||||||
|
1.83335f, 0.04967833f,
|
||||||
|
2.555583f, 2.124535f,
|
||||||
|
3.166683f, 2.124535f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_x_outtangent_array[] = {
|
||||||
|
0.16665f, 2.124535f,
|
||||||
|
0.66665f, -5.611371f,
|
||||||
|
1.16665f, -5.611371f,
|
||||||
|
1.66665f, 0.04967833f,
|
||||||
|
2.27775f, 0.04967833f,
|
||||||
|
2.999983f, 2.124535f,
|
||||||
|
3.666564f, 2.124535f,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum interpolation const array_node_light_translation_x_interpolation_array[] = {
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
};
|
||||||
|
|
||||||
|
sampler const sampler_node_light_translation_x_sampler = {
|
||||||
|
// node_light_translation_x_input
|
||||||
|
.input = {
|
||||||
|
.float_array = array_node_light_translation_x_input_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_x_output
|
||||||
|
.output = {
|
||||||
|
.float_array = array_node_light_translation_x_output_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_x_intangent
|
||||||
|
.in_tangent = {
|
||||||
|
.float_array = array_node_light_translation_x_intangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_x_outtangent
|
||||||
|
.out_tangent = {
|
||||||
|
.float_array = array_node_light_translation_x_outtangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_x_interpolation
|
||||||
|
.interpolation = {
|
||||||
|
.interpolation_array = array_node_light_translation_x_interpolation_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_y_input_array[] = {
|
||||||
|
0.0f,
|
||||||
|
0.5f,
|
||||||
|
1.0f,
|
||||||
|
1.5f,
|
||||||
|
2.0f,
|
||||||
|
2.833333f,
|
||||||
|
3.333333f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_y_output_array[] = {
|
||||||
|
8.291501f,
|
||||||
|
0.2940993f,
|
||||||
|
0.2940993f,
|
||||||
|
-3.820096f,
|
||||||
|
-3.820096f,
|
||||||
|
8.291501f,
|
||||||
|
8.291501f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_y_intangent_array[] = {
|
||||||
|
0.9997917f, 8.291501f,
|
||||||
|
0.33335f, 0.2940993f,
|
||||||
|
0.83335f, 0.2940993f,
|
||||||
|
1.33335f, -3.820096f,
|
||||||
|
1.83335f, -3.820096f,
|
||||||
|
2.555583f, 8.291501f,
|
||||||
|
3.166683f, 8.291501f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_y_outtangent_array[] = {
|
||||||
|
0.16665f, 8.291501f,
|
||||||
|
0.66665f, 0.2940993f,
|
||||||
|
1.16665f, 0.2940993f,
|
||||||
|
1.66665f, -3.820096f,
|
||||||
|
2.27775f, -3.820096f,
|
||||||
|
2.999983f, 8.291501f,
|
||||||
|
3.666564f, 8.291501f,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum interpolation const array_node_light_translation_y_interpolation_array[] = {
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
};
|
||||||
|
|
||||||
|
sampler const sampler_node_light_translation_y_sampler = {
|
||||||
|
// node_light_translation_y_input
|
||||||
|
.input = {
|
||||||
|
.float_array = array_node_light_translation_y_input_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_y_output
|
||||||
|
.output = {
|
||||||
|
.float_array = array_node_light_translation_y_output_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_y_intangent
|
||||||
|
.in_tangent = {
|
||||||
|
.float_array = array_node_light_translation_y_intangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_y_outtangent
|
||||||
|
.out_tangent = {
|
||||||
|
.float_array = array_node_light_translation_y_outtangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_y_interpolation
|
||||||
|
.interpolation = {
|
||||||
|
.interpolation_array = array_node_light_translation_y_interpolation_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_z_input_array[] = {
|
||||||
|
0.0f,
|
||||||
|
0.5f,
|
||||||
|
1.0f,
|
||||||
|
1.5f,
|
||||||
|
2.0f,
|
||||||
|
2.833333f,
|
||||||
|
3.333333f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_z_output_array[] = {
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
6.185831f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_z_intangent_array[] = {
|
||||||
|
0.9997917f, 6.185831f,
|
||||||
|
0.33335f, 6.185831f,
|
||||||
|
0.83335f, 6.185831f,
|
||||||
|
1.33335f, 6.185831f,
|
||||||
|
1.83335f, 6.185831f,
|
||||||
|
2.555583f, 6.185831f,
|
||||||
|
3.166683f, 6.185831f,
|
||||||
|
};
|
||||||
|
|
||||||
|
float const array_node_light_translation_z_outtangent_array[] = {
|
||||||
|
0.16665f, 6.185831f,
|
||||||
|
0.66665f, 6.185831f,
|
||||||
|
1.16665f, 6.185831f,
|
||||||
|
1.66665f, 6.185831f,
|
||||||
|
2.27775f, 6.185831f,
|
||||||
|
2.999983f, 6.185831f,
|
||||||
|
3.666564f, 6.185831f,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum interpolation const array_node_light_translation_z_interpolation_array[] = {
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
interpolation::BEZIER,
|
||||||
|
};
|
||||||
|
|
||||||
|
sampler const sampler_node_light_translation_z_sampler = {
|
||||||
|
// node_light_translation_z_input
|
||||||
|
.input = {
|
||||||
|
.float_array = array_node_light_translation_z_input_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_z_output
|
||||||
|
.output = {
|
||||||
|
.float_array = array_node_light_translation_z_output_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
// node_light_translation_z_intangent
|
||||||
|
.in_tangent = {
|
||||||
|
.float_array = array_node_light_translation_z_intangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_z_outtangent
|
||||||
|
.out_tangent = {
|
||||||
|
.float_array = array_node_light_translation_z_outtangent_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 2,
|
||||||
|
},
|
||||||
|
// node_light_translation_z_interpolation
|
||||||
|
.interpolation = {
|
||||||
|
.interpolation_array = array_node_light_translation_z_interpolation_array,
|
||||||
|
.count = 7,
|
||||||
|
.stride = 1,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
channel const node_channel_node_cube_translation_x = {
|
channel const node_channel_node_cube_translation_x = {
|
||||||
.source_sampler = &sampler_node_cube_translation_x_sampler,
|
.source_sampler = &sampler_node_cube_translation_x_sampler,
|
||||||
.target_transform_index = 0,
|
.target_transform_index = 0,
|
||||||
@ -400,27 +649,78 @@ channel const node_channel_node_geosphere_scaleaxisrotation = {
|
|||||||
.target_attribute = target_attribute::ALL,
|
.target_attribute = target_attribute::ALL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
channel const node_channel_node_light_translation_x = {
|
||||||
|
.source_sampler = &sampler_node_light_translation_x_sampler,
|
||||||
|
.target_transform_index = 0,
|
||||||
|
.target_attribute = target_attribute::X,
|
||||||
|
};
|
||||||
|
|
||||||
|
channel const node_channel_node_light_translation_y = {
|
||||||
|
.source_sampler = &sampler_node_light_translation_y_sampler,
|
||||||
|
.target_transform_index = 0,
|
||||||
|
.target_attribute = target_attribute::Y,
|
||||||
|
};
|
||||||
|
|
||||||
|
channel const node_channel_node_light_translation_z = {
|
||||||
|
.source_sampler = &sampler_node_light_translation_z_sampler,
|
||||||
|
.target_transform_index = 0,
|
||||||
|
.target_attribute = target_attribute::Z,
|
||||||
|
};
|
||||||
|
|
||||||
|
// image_index: 0
|
||||||
|
image const image_american_cherry_png = {
|
||||||
|
.resource_name = L"AMERICAN_CHERRY_PNG",
|
||||||
|
};
|
||||||
|
|
||||||
|
// image_index: 1
|
||||||
|
image const image__02_png = {
|
||||||
|
.resource_name = L"102_PNG",
|
||||||
|
};
|
||||||
|
|
||||||
|
// image_index: 2
|
||||||
|
image const image_finishes_flooring_tile_square_medium_blue_png = {
|
||||||
|
.resource_name = L"FINISHES_FLOORING_TILE_SQUARE_MEDIUM_BLUE_PNG",
|
||||||
|
};
|
||||||
|
|
||||||
|
// image_index: 3
|
||||||
|
image const image_sitework_planting_grass_bermuda1_jpg = {
|
||||||
|
.resource_name = L"SITEWORK_PLANTING_GRASS_BERMUDA1_JPG",
|
||||||
|
};
|
||||||
|
|
||||||
|
image const * const images[] = {
|
||||||
|
&image_american_cherry_png,
|
||||||
|
&image__02_png,
|
||||||
|
&image_finishes_flooring_tile_square_medium_blue_png,
|
||||||
|
&image_sitework_planting_grass_bermuda1_jpg,
|
||||||
|
};
|
||||||
|
|
||||||
effect const effect_material__15 = {
|
effect const effect_material__15 = {
|
||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
|
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
|
.color = {0.6705883f, 0.5843138f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -432,23 +732,29 @@ effect const effect_material__16 = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
|
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
|
.color = {0.5803922f, 1.0f, 0.9647059f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -460,23 +766,29 @@ effect const effect_material__17 = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
|
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
|
.color = {0.6509804f, 1.0f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -488,23 +800,29 @@ effect const effect_material__18 = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
|
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
|
.color = {0.9333334f, 1.0f, 0.5647059f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -516,23 +834,29 @@ effect const effect_material__19 = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
|
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
|
.color = {1.0f, 0.7686275f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -544,23 +868,29 @@ effect const effect_material__20 = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
|
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
|
.color = {1.0f, 0.5803922f, 0.5803922f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -572,23 +902,29 @@ effect const effect_coloreffectr26g177b26 = {
|
|||||||
.type = effect_type::PHONG,
|
.type = effect_type::PHONG,
|
||||||
.phong = {
|
.phong = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
|
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
|
.color = {0.1019608f, 0.6941176f, 0.1019608f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -596,27 +932,33 @@ effect const effect_coloreffectr26g177b26 = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
effect const effect_coloreffectr229g154b215 = {
|
effect const effect_grass = {
|
||||||
.type = effect_type::PHONG,
|
.type = effect_type::BLINN,
|
||||||
.phong = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
.type = color_or_texture_type::COLOR,
|
||||||
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
.color = {0.8980392f, 0.6039216f, 0.8431373f, 1.0f},
|
.type = color_or_texture_type::COLOR,
|
||||||
|
.color = {0.588f, 0.588f, 0.588f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
.color = {0.8980392f, 0.6039216f, 0.8431373f, 1.0f},
|
.type = color_or_texture_type::TEXTURE,
|
||||||
|
.texture = { .image_index = 3 },
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.type = color_or_texture_type::COLOR,
|
||||||
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -624,27 +966,33 @@ effect const effect_coloreffectr229g154b215 = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
effect const effect_coloreffectr28g149b177 = {
|
effect const effect_wood = {
|
||||||
.type = effect_type::PHONG,
|
.type = effect_type::BLINN,
|
||||||
.phong = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
.type = color_or_texture_type::COLOR,
|
||||||
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
.color = {0.1098039f, 0.5843137f, 0.6941176f, 1.0f},
|
.type = color_or_texture_type::COLOR,
|
||||||
|
.color = {0.588f, 0.588f, 0.588f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
.color = {0.1098039f, 0.5843137f, 0.6941176f, 1.0f},
|
.type = color_or_texture_type::TEXTURE,
|
||||||
|
.texture = { .image_index = 0 },
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.type = color_or_texture_type::TEXTURE,
|
||||||
|
.texture = { .image_index = 2 },
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -656,23 +1004,29 @@ effect const effect_coloreffectr198g224b87 = {
|
|||||||
.type = effect_type::PHONG,
|
.type = effect_type::PHONG,
|
||||||
.phong = {
|
.phong = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
.color = {0.0f, 0.0f, 0.0f, 0.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
|
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
|
.color = {0.7764706f, 0.8784314f, 0.3411765f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -684,23 +1038,29 @@ effect const effect_lightemit = {
|
|||||||
.type = effect_type::BLINN,
|
.type = effect_type::BLINN,
|
||||||
.blinn = {
|
.blinn = {
|
||||||
.emission = {
|
.emission = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.ambient = {
|
.ambient = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.diffuse = {
|
.diffuse = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.specular = {
|
.specular = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.shininess = 10.0f,
|
.shininess = 10.0f,
|
||||||
.reflective = {
|
.reflective = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
.color = {0.0f, 0.0f, 0.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.reflectivity = 0.0f,
|
.reflectivity = 0.0f,
|
||||||
.transparent = {
|
.transparent = {
|
||||||
|
.type = color_or_texture_type::COLOR,
|
||||||
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
.color = {1.0f, 1.0f, 1.0f, 1.0f},
|
||||||
},
|
},
|
||||||
.transparency = 1.0f,
|
.transparency = 1.0f,
|
||||||
@ -712,14 +1072,6 @@ material const material_coloreffectr26g177b26_material = {
|
|||||||
.effect = &effect_coloreffectr26g177b26,
|
.effect = &effect_coloreffectr26g177b26,
|
||||||
};
|
};
|
||||||
|
|
||||||
material const material_coloreffectr229g154b215_material = {
|
|
||||||
.effect = &effect_coloreffectr229g154b215,
|
|
||||||
};
|
|
||||||
|
|
||||||
material const material_coloreffectr28g149b177_material = {
|
|
||||||
.effect = &effect_coloreffectr28g149b177,
|
|
||||||
};
|
|
||||||
|
|
||||||
material const material_coloreffectr198g224b87_material = {
|
material const material_coloreffectr198g224b87_material = {
|
||||||
.effect = &effect_coloreffectr198g224b87,
|
.effect = &effect_coloreffectr198g224b87,
|
||||||
};
|
};
|
||||||
@ -748,6 +1100,14 @@ material const material_material__20_material = {
|
|||||||
.effect = &effect_material__20,
|
.effect = &effect_material__20,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
material const material_grass_material = {
|
||||||
|
.effect = &effect_grass,
|
||||||
|
};
|
||||||
|
|
||||||
|
material const material_wood_material = {
|
||||||
|
.effect = &effect_wood,
|
||||||
|
};
|
||||||
|
|
||||||
material const material_lightemit_material = {
|
material const material_lightemit_material = {
|
||||||
.effect = &effect_lightemit,
|
.effect = &effect_lightemit,
|
||||||
};
|
};
|
||||||
@ -973,26 +1333,56 @@ instance_material const instance_materials_node_cube_0[] = {
|
|||||||
{
|
{
|
||||||
.element_index = 1, // an index into mesh.triangles
|
.element_index = 1, // an index into mesh.triangles
|
||||||
.material = &material_material__15_material,
|
.material = &material_material__15_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_material__16_material,
|
.material = &material_material__16_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.element_index = 5, // an index into mesh.triangles
|
.element_index = 5, // an index into mesh.triangles
|
||||||
.material = &material_material__17_material,
|
.material = &material_material__17_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.element_index = 4, // an index into mesh.triangles
|
.element_index = 4, // an index into mesh.triangles
|
||||||
.material = &material_material__20_material,
|
.material = &material_material__20_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.element_index = 3, // an index into mesh.triangles
|
.element_index = 3, // an index into mesh.triangles
|
||||||
.material = &material_material__18_material,
|
.material = &material_material__18_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.element_index = 2, // an index into mesh.triangles
|
.element_index = 2, // an index into mesh.triangles
|
||||||
.material = &material_material__19_material,
|
.material = &material_material__19_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1008,8 +1398,8 @@ instance_light const instance_lights_node_cube[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
channel const * const node_channels_node_cube[] = {
|
channel const * const node_channels_node_cube[] = {
|
||||||
&node_channel_node_cube_translation_y,
|
|
||||||
&node_channel_node_cube_translation_x,
|
&node_channel_node_cube_translation_x,
|
||||||
|
&node_channel_node_cube_translation_y,
|
||||||
};
|
};
|
||||||
|
|
||||||
node const node_node_cube = {
|
node const node_node_cube = {
|
||||||
@ -1057,6 +1447,11 @@ instance_material const instance_materials_node_torus_0[] = {
|
|||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_coloreffectr26g177b26_material,
|
.material = &material_coloreffectr26g177b26_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1099,7 +1494,12 @@ transform const transforms_node_cylinder[] = {
|
|||||||
instance_material const instance_materials_node_cylinder_0[] = {
|
instance_material const instance_materials_node_cylinder_0[] = {
|
||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_coloreffectr229g154b215_material,
|
.material = &material_grass_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = 0 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1149,7 +1549,12 @@ transform const transforms_node_plane[] = {
|
|||||||
instance_material const instance_materials_node_plane_0[] = {
|
instance_material const instance_materials_node_plane_0[] = {
|
||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_coloreffectr28g149b177_material,
|
.material = &material_wood_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = 0 },
|
||||||
|
.specular = { .input_set = 0 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1204,6 +1609,11 @@ instance_material const instance_materials_node_geosphere_0[] = {
|
|||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_coloreffectr198g224b87_material,
|
.material = &material_coloreffectr198g224b87_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1259,6 +1669,9 @@ instance_light const instance_lights_node_light[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
channel const * const node_channels_node_light[] = {
|
channel const * const node_channels_node_light[] = {
|
||||||
|
&node_channel_node_light_translation_z,
|
||||||
|
&node_channel_node_light_translation_x,
|
||||||
|
&node_channel_node_light_translation_y,
|
||||||
};
|
};
|
||||||
|
|
||||||
node const node_node_light = {
|
node const node_node_light = {
|
||||||
@ -1276,7 +1689,7 @@ node const node_node_light = {
|
|||||||
.instance_lights_count = 1,
|
.instance_lights_count = 1,
|
||||||
|
|
||||||
.channels = node_channels_node_light,
|
.channels = node_channels_node_light,
|
||||||
.channels_count = 0,
|
.channels_count = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
transform const transforms_node_lightindicator[] = {
|
transform const transforms_node_lightindicator[] = {
|
||||||
@ -1290,6 +1703,11 @@ instance_material const instance_materials_node_lightindicator_0[] = {
|
|||||||
{
|
{
|
||||||
.element_index = 0, // an index into mesh.triangles
|
.element_index = 0, // an index into mesh.triangles
|
||||||
.material = &material_lightemit_material,
|
.material = &material_lightemit_material,
|
||||||
|
|
||||||
|
.emission = { .input_set = -1 },
|
||||||
|
.ambient = { .input_set = -1 },
|
||||||
|
.diffuse = { .input_set = -1 },
|
||||||
|
.specular = { .input_set = -1 },
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1351,6 +1769,9 @@ collada::descriptor const descriptor = {
|
|||||||
|
|
||||||
.inputs_list = inputs_list,
|
.inputs_list = inputs_list,
|
||||||
.inputs_list_count = (sizeof (inputs_list)) / (sizeof (inputs_list[0])),
|
.inputs_list_count = (sizeof (inputs_list)) / (sizeof (inputs_list[0])),
|
||||||
|
|
||||||
|
.images = images,
|
||||||
|
.images_count = (sizeof (images)) / (sizeof (images[0])),
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user