Skip to content
This repository has been archived by the owner on Jun 22, 2021. It is now read-only.

Scene Structure

macroing edited this page Oct 1, 2015 · 9 revisions

At the moment it's not straightforward to define a scene in OpenRC. This shortcoming will be remedied by a library and its scene structure format. They will both be called OpenSL, which is an acronym for Open Scene Library. The filename extension will be .osl.

The following scene structure format is an early draft, so it may be changed at any point.

Camera:
	float:		Eye_X								---
	float:		Eye_Y								---
	float:		Eye_Z								---
	float:		Up_X								---
	float:		Up_Y								---
	float:		Up_Z								---
	float:		Look_At_X							---
	float:		Look_At_Y							---
	float:		Look_At_Z							---
	float:		View_Plane_Distance					---
	float:		Zoom								---

Light:
	float:		Type								PointLight=1.0
	float:		Size								---
	float[]:	Data[Size-2]						---

Material:
	float:		Ambient_Color_R						[0.0, 1.0]
	float:		Ambinet_Color_G						[0.0, 1.0]
	float:		Ambinet_Color_B						[0.0, 1.0]
	float:		Ambinet_Intensity					[0.0, 1.0]
	float:		Diffuse_Color_R						[0.0, 1.0]
	float:		Diffuse_Color_G						[0.0, 1.0]
	float:		Diffuse_Color_B						[0.0, 1.0]
	float:		Diffuse_Intensity					[0.0, 1.0]
	float:		Specular_Color_R					[0.0, 1.0]
	float:		Specular_Color_G					[0.0, 1.0]
	float:		Specular_Color_B					[0.0, 1.0]
	float:		Specular_Intensity					[0.0, 1.0]
	float:		Specular_Power						---
	float:		Reflection							---
	float:		Refraction							---
	float:		Texture_Count						---
	float[]:	Texture_Offsets[Texture_Count]		---

Plane:
	float:		Type								2.0
	float:		Size								6.0
	float:		Material_Offset						---
	float:		Surface_Normal_X					[0.0, 1.0]
	float:		Surface_Normal_Y					[0.0, 1.0]
	float:		Surface_Normal_Z					[0.0, 1.0]

PointLight:
	float:		Type								1.0
	float:		Size								6.0
	float:		Position_X							---
	float:		Position_Y							---
	float:		Position_Z							---
	float:		Distance_Falloff					Not used.

Scene:
	float[]:	Camera[19]							---
	float:		Textures_Length						---
	float[]:	Textures[Textures_Length]			---
	float:		Materials_Length					---
	float[]:	Materials[Materials_Length]			---
	float:		Lights_Length						---
	float[]:	Lights[Lights_Length]				---
	float:		Shapes_Length						---
	float[]:	Shapes[Shapes_Length]				---

Shape:
	float:		Type								Plane=2.0, Sphere=1.0, Triangle=3.0
	float:		Size								---
	float:		Material_Offset						---
	float[]:	Data[Size-3]						---

Sphere:
	float:		Type								1.0
	float:		Size								7.0
	float:		Material_Offset						---
	float:		Position_X							---
	float:		Position_Y							---
	float:		Position_Z							---
	float:		Radius								---

Texture:
	int:		Type								Solid=1, Decal=2, NormalMap=3
	int:		Size								---
	int:		Width								---
	int:		Height								---
	int[]:		Data[Size-4]						---

Triangle:
	float:		Type								3.0
	float:		Size								15.0
	float:		Material_Offset						---
	float:		A_X									---
	float:		A_Y									---
	float:		A_Z									---
	float:		B_X									---
	float:		B_Y									---
	float:		B_Z									---
	float:		C_X									---
	float:		C_Y									---
	float:		C_Z									---
	float:		Surface_Normal_X					[0.0, 1.0]
	float:		Surface_Normal_Y					[0.0, 1.0]
	float:		Surface_Normal_Z					[0.0, 1.0]
Clone this wiki locally