Phong material

From Eclat-Digital Ocean 2014 Documentation
Jump to: navigation, search
Example of phong material, with:
*uniform green diffuse color
*refractive index of 1.5
*uniform exponent of 3500
material-2014.png

Description

This material type follows the Blinn-Phong reflection model.

It corresponds to densely diffuse materials, with a surface smooth enough to allow specular reflection, such as smooth paints, laquered or varnished surfaces.

This is a more refined model than Lambertian material for describing diffuse surfaces. As opposed to Oren-Nayar material, the Blinn-Phong model was derived more empirically than by using a real physical model, and describes more a shading algorithm for real-time graphic than a BRDF. The actual equations used in Ocean were adapted to fit a physical approach.

Children nodes

filtershader-2014.png diffuse
Filter shader : The spectral diffuse reflectance, or albedo, of the material
filtershader-2014.png specular
Filter shader : The spectral reflectance of the specular component of the material. This is modulated by the fresnel coefficient, which depends on refractive index parameter. The default value is 1
scalarshader-2014.png exponent
Scalar shader : The material flatness, between 0 (very rough) and infinity (very smooth)
medium-2014.png bulk
Medium : The bulk medium filling the geometry volume on the back side
normalshader-2014.png bump
Normal shader : Normal shading modifier
emitter-2014.png emitter
Emitter : The Surface light emission properties

Parameters

ior
real
The refractive index, which controls the surface reflectivity. Must be 1 (no specular reflection) or greater

Ocean XML 2.0 example

<?xml version="1.0" encoding="UTF-8"?>
<oceanroot version="2.0">
<material name="ceramic" type="phong">
	<prm ior="1.5"/>
	<filtershader name="diffuse" type="uniform">
		<spectrum name="spectrum" type="tabulated" start="380E-9" end="780E-9" num="8">
			0.2 0.25 0.3 0.35 0.5 0.6 0.7 0.7
		</spectrum>						
	</filtershader>
	<filtershader name="specular" type="uniform">
		<spectrum name="spectrum" type="rgb" rgb="1.0 1.0 1.0"/>
	</filtershader>
	<scalarshader name="exponent" type="uniform" value="3500"/>
</material>
</oceanroot>

See also

Material types