Skip to content

9prady9/tonkytin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OUTDATED WILL BE UPDATED SOON

Note: All distances in the property files should follow same metric unit, otherwise undefined results will appear in the rendering.

scene_properties.xml is used to describe the following properties of the scene. Each tag explains how it pertains to the scene.

<Scene>
	<targetImage name="filename" outputDirectory="location">
		<resolution width="image width" height="image height"/>
		<antiAlias m="horizontal supersampling" n="vertical supersampling"/>
	</targetImage>
	
	<viewPlane sx="width scale" sy="height scale" eyeToViewPlane="distance"/>

	<camera> - position, orientation parameters of camera in 3d space
		<eye x="" y="" z=""/>
		<lookAt  x="" y="" z=""/>
		<up  x="" y="" z=""/>             <!--direction-->
	</camera>
    
    <pointLights count="# of point lights">
            <light sno="kind of identification #">
                    <position  x="" y="" z=""/>
                    <color  red="0 to 1" green="" blue=""/>
            </light>
    </pointLights>
    
    <areaLights count="# of square area lights">
    	<ALight sno="kind of identification #">
    		<center  x="" y="" z=""/>
    		<horizontal  x="" y="" z=""/> <!--direction-->
    		<vertical  x="" y="" z=""/>   <!--direction-->
    		<samples hSamples="horizontal" vSamples="vertical"/>
    		<color  red="0 to 1" green="" blue=""/>
    	</ALight>
    </areaLights>
    
    <specularLight phongExponent="">
    	<color red="0 to 1" green="" blue=""/>
    </specularLight>
    
    <ambientLight intensity="kind of amplification factor">
    	<color red="0 to 1" green="" blue=""/>
    </ambientLight>
    
    <goochGooch>
		<cool factor="">
  			<color red="0 to 1" green="" blue=""/>
		</cool>
		<warm factor="">
  			<color red="0 to 1" green="" blue=""/>
		</warm>
	</goochGooch>
	
	<reflection depth="ray tracing depth" intensity="global factor, convience sake" />
		
	<refraction depth="ray tracing depth" intensity="global factor, convience sake" />
	
	<DOF focalLength="" apertureDiameter="" numOfRays="" />
	
	<ambientOcclusion HitEffectiveDistance="" radialSource="location of radial map" />
	
    <envMap whichOne="[ cubeMap | sphereMap ]">
    	<cubeMap>
    		<posx></posx> <!--location-->
    		<negx></negx>
    		<posy></posy>
    		<negy></negy>
    		<posz></posz>
    		<negz></negz>
    	</cubeMap>
    	<!--sphereMap> made available for future implementation </sphereMap-->
    </envMap>
</Scene>

objects.xml is used to describe the various objects in the scene.

<objects> <!--Root element in the xml. Lists the objects in the scene,
			described using object tag-->
	<object type="[ Plane | Sphere | Quadric | Mesh ]"
    		MaterialType="[ diffusive | emissive | refractive | reflective ]"
    		TexTureType="[ SOLID | IMAGE | PROCEDURE ]"
    		neta="refractive index of the material">
    		
    		<!--
    		SOLID - [made available for future implementation]
    		IMAGE - traditional image texturing.
    		PROCEDURE - currently, default JuliaSet is available.
    					More are to come in future.
    		-->
    		
    		<motion speed="distance metric/second">
    			<direction x="" y="" z=""/>
    		</motion>
    		
    		<scale x="" y="" z=""/>
    		
    		<color red="0 to 1" green="" blue=""/> 
    		
    		<!-- 'texFile' is required if TextureType="IMAGE" -->
    		<texFile><!--location--></texFile>
    		
    		<!-- 'objFile' is required if type="Mesh" -->
    		<objFile><!--location--></objFile>
    		
    		<!-- 'haxis' and 'vaxis' are required if type="[Plane|Sphere|Quadric]" -->
    		<haxis x="" y="" z=""/>
    		<vaxis x="" y="" z=""/>
    		
    		<!-- 'normal' and 'point' are required if type="Plane" -->
    		<normal x="" y="" z=""/>
    		<point x="" y="" z=""/>
    		
    		<!-- 'center' and 'radius' are required if type="Sphere" -->
    		<center x="" y="" z=""/>
    		<radius><!--value--></radius>
    		
    		<!-- 'aValues' & 'point' are required if type="Quadric" -->
    		<point x="" y="" z=""/>
    		<aValues a02="" a12="" a22="" a01=""  a11="" a21=""  a00=""/>
    		
    		<!--
    		Quadric general equation is F(x) = A*x^2 + B*x + C = 0
    		Normal to Quadric is its gradient = DELTA(F(x)) / |DELTA(F(x))|
    		
    		Below are unit quadrics centered at origin
    		with main axes in x and y dimensions
    			x^2 + y^2 + z^2 - 1 = 0     is Ellipsoid
    			x^2 + y^2 - 1 = 0, Z=[0,K]  is Cylinder
    			x^2 + y^2 - z^2 = 0         is Cone
    			x^2 + y^2 - z^2 - 1 = 0     is Hyperboloid
    			x^2 + y^2 - z^2 + 1 = 0     is Hyperboloid(mirror to above one)
    			x^2 + y^2 - z = 0           is Paraboloid
    		
    		Swapping dimensions will give variations of these basic shapes.
    		Replacing x,y,z with (x-xc),(y-yc),(z-zc) respectively, will translate
    		the object in world. All such equations can be represented using a 
    		single equation given below. 
    		
    		SUM(ai2,i goes from 0 to 2) * xi^2 + SUM(ai1, i goes from 0 to 1) * xi + a00 = 0
    		where xi = x0 | x1 | x2 each representing the dimensions of 3D space.
    		
    		Please see below for an example of how values of a02,a12,a22, a01, a11, a21, a00 
    		dictates the shape of the quadrics given above.
    		----------------------------------------------------------
    		Shape        a02    a12    a22    a01    a11    a21    a00
    		----------------------------------------------------------
    		Plane        0      0      0      0      0      1      0
    		Ellipsoid    1      1      1      0      0      0      -1
    		Cylinder     1      1      0      0      0      0      -1
    		Cone         1      1      -1     0      0      0      0
    		Hyperboloid  1      1      -1     0      0      0      -1
    		Hyperboloid  1      1      -1     0      0      0      +1
    		Paraboloid   1      1      0      0      0      1      0
    		----------------------------------------------------------
    		-->
    </object>
</objects>

About

Hobby Ray tracing application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published