<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.gl.material" module="jit" category="Jitter OpenGL">
	<digest>
		Generate materials for 3D objects
	</digest>
	<description>
		Produces shaders for high quality rendering that automatically adapt to texture inputs and the number of active lights.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				Diffuse texture or matrix
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="texture/matrix">
			<digest>
				Specular texture or matrix
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="2" type="texture/matrix">
			<digest>
				Ambient texture or matrix
			</digest>
			<description>
				(texture) ambient
			</description>
		</inlet>
		<inlet id="3" type="texture/matrix">
			<digest>
				Emission texture or matrix
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="4" type="texture/matrix">
			<digest>
				Normals texture or matrix
			</digest>
			<description>
				(texture) normals
			</description>
		</inlet>
		<inlet id="5" type="texture/matrix">
			<digest>
				Environment texture or matrix
			</digest>
			<description>
				The environment texture can be either a <o>jit.gl.texture</o> or a <o>jit.gl.cubemap</o>.
			</description>
		</inlet>
		<inlet id="6" type="texture/matrix">
			<digest>
				Heightmap texture or matrix
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="7" type="texture/matrix">
			<digest>
				Glossmap texture or matrix
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MOP-->
	<mop matrixinputcount="0" matrixoutputcount="1">
		<matrixoutput name="out" planelink="1" typelink="1" dimlink="1" minplanecount="1" maxplanecount="1" mindimcount="1" maxdimcount="32">
			<types>
				char
			</types>
		</matrixoutput>
	</mop>
	<!--OB3D-->
	<OB3D />
	<!--MESSAGES-->
	<methodlist>
		<method name="bind">
			<arglist />
			<digest>
				Bind the material
			</digest>
			<description>
				Bind the material for use
			</description>
		</method>
		<method name="(drag)">
			<digest>
				Drag and drop a Jitter material file
			</digest>
			<description>
				Drag and drop a Jitter material file (.jitmtl)
			</description>
		</method>
		<method name="ambient_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set ambient texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="environment_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set environment texture
			</digest>
			<description>
				Set the environment texture. The environment texture can be a <o>jit.gl.texture</o> or a <o>jit.gl.cubemap</o>)
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Open the materials browser
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="diffuse_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set diffuse texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="emission_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set emission texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getparamdefault">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Get parameter default value
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getparamlist">
			<arglist />
			<digest>
				Get list of parameter names
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getparamtype">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Get parameter type
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="getparamval">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
			</arglist>
			<digest>
				Get the parameter value
			</digest>
			<description>
				Get the parameter value
			</description>
		</method>
		<method name="heightmap_texture">
			<arglist />
			<digest>
				Set heightmap texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="glossmap_texture">
			<arglist />
			<digest>
				Set glossmap texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="normals_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set normals texture
			</digest>
			<description>
				Set the normals texture. The normals texture will add a bump-mapping effect to the material.
			</description>
		</method>
		<method name="param">
			<arglist>
				<arg name="name" optional="0" type="symbol" />
				<arg name="values" optional="0" type="list" />
			</arglist>
			<digest>
				Set material parameter value
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="open">
			<arglist />
			<digest>
				Open the materials browser
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="specular_texture">
			<arglist>
				<arg name="name" optional="1" type="symbol" />
			</arglist>
			<digest>
				Set specular texture
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="reset">
			<arglist />
			<digest>
				Reset shading model and colors
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="reset_colors">
			<arglist />
			<digest>
				Reset colors to default values
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="reset_shading_model">
			<arglist />
			<digest>
				Reset shading model to default values
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="unbind">
			<arglist />
			<digest>
				Unbind the material from use
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
		<method name="wclose">
			<arglist />
			<digest>
				Close material browser
			</digest>
			<description>
				TEXT_HERE
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="anim_grow" />
		<jittermethod name="anim_move" />
		<jittermethod name="anim_reset" />
		<jittermethod name="anim_turn" />
		<jittermethod name="clear" />
		<jittermethod name="draw" />
		<jittermethod name="drawimmediate" />
		<jittermethod name="drawraw" />
		<jittermethod name="export_material" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="import_material" />
		<jittermethod name="importattrs" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="darkness" get="1" set="1" type="float" size="1">
			<digest>
				Material darkness
			</digest>
			<description>
				Material darkness. Only valid when the diffuse shading model is minnaert.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Darkness" />
			</attributelist>
		</attribute>
		<attribute name="diffuse_model" get="1" set="1" type="symbol" size="1">
			<digest>
				Diffuse shading model
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="lambert">
							<digest>
								Lambertian diffuse shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="oren_nayer">
							<digest>
								Oren-Nayer diffuse shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="toon">
							<digest>
								Toon diffuse shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="minnaert">
							<digest>
								Minnaert diffuse shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Diffuse Model" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="diffuse_size" get="1" set="1" type="float" size="1">
			<digest>
				Diffuse toon component size
			</digest>
			<description>
				Diffuse toon component size. Only valid when the diffuse shading model is toon.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Diffuse Size" />
			</attributelist>
		</attribute>
		<attribute name="diffuse_smooth" get="1" set="1" type="float" size="1">
			<digest>
				Diffuse toon component smoothness
			</digest>
			<description>
				Diffuse toon component smoothness. Only valid when the diffuse shading model is toon.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Diffuse Smooth" />
			</attributelist>
		</attribute>
		<attribute name="drawto" get="1" set="1" type="symbol" size="1">
			<digest>
				Render context name
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Drawto" />
			</attributelist>
		</attribute>
		<attribute name="fog" get="1" set="1" type="symbol" size="1">
			<digest>
				Fog type
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="4">
					<enumlist>
						<enum name="none">
							<digest>
								No fog
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="linear">
							<digest>
								Linear fog
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="exp">
							<digest>
								Exponential fog
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="exp2">
							<digest>
								Squared exponential fog
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Fog" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="heightmap_mode" get="1" set="1" type="symbol" size="1">
			<digest>
				Heightmap Mode
			</digest>
			<description>
				Heightmap mode to use when the heightmap input is in use (default = parallax).
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="parallax">
							<digest>
								Parallax heightmap mode
							</digest>
							<description>
								Parallax heightmap mode is used in conjunction with normal mapping to enhance the depth effect by displacing texture coordinates. A normals input is required when using parallax mode.
							</description>
						</enum>
						<enum name="vtf">
							<digest>
								Vertex texture fetch mode
							</digest>
							<description>
								Vertex texture fetch mode samples the heightmap texture's first channel (red plane) in the vertex program and displaces the vertex position along its normal by that amount. vtf mode requires texture inputs must be non-rectangular (@rectangle 0).
							</description>
						</enum>
						<enum name="vtf_normals">
							<digest>
								Vertex texture fetch with normals generation mode
							</digest>
							<description>
								Vertex texture fetch with normals generation mode is similar to vtf mode but it also regenerates lighting normals for the displaced mesh.
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Heightmap Mode" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="override" get="1" set="1" type="int" size="1">
			<digest>
				Override jit.gl object color material attributes
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Override" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="roughness" get="1" set="1" type="float" size="1">
			<digest>
				Material roughness
			</digest>
			<description>
				Material roughness. Only valid when the diffuse shading model is oren_nayer.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Roughness" />
			</attributelist>
		</attribute>
		<attribute name="shadow_eps" get="1" set="1" type="float" size="1">
			<digest>
				Shadow eps
			</digest>
			<description>
				Shadow epsilon (eps) modifies the shape of shadows, and corrects self-shadowing error (default = 0.2). This value is used when the bound object is a shadow-receiver.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Shadow Eps" />
			</attributelist>
		</attribute>
		<attribute name="shadow_hard" get="1" set="1" type="float" size="1">
			<digest>
				Shadow hardness
			</digest>
			<description>
				Adjust shadow hardness (default = 0.7). This value is used when the bound object is a shadow-receiver.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Shadow Hardness" />
			</attributelist>
		</attribute>
		<attribute name="shadow_radius" get="1" set="1" type="float" size="1">
			<digest>
				Shadow radius
			</digest>
			<description>
				Adjust shadow blur radius (default = 0.3). This value is used when the bound object is a shadow-receiver.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Shadow Radius" />
			</attributelist>
		</attribute>
		<attribute name="shadow_soft" get="1" set="1" type="float" size="1">
			<digest>
				Shadow softness
			</digest>
			<description>
				Adjust shadow softness (default = 0.3). Overwrites <at>shadow_radius</at> and <at>shadow_hard</at> attributes. This value is used when the bound object is a shadow-receiver.
			</description>
			<attributelist>
				<attribute name="introduced" get="1" set="1" type="symbol" size="1" value="7.0.0" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Shadow Softness" />
			</attributelist>
		</attribute>
		<attribute name="specular_model" get="1" set="1" type="symbol" size="1">
			<digest>
				Specular shading model
			</digest>
			<description>
				TEXT_HERE
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="5">
					<enumlist>
						<enum name="blinn">
							<digest>
								Blinn specular shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="phong">
							<digest>
								Phong specular shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="toon">
							<digest>
								Toon specular shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="ward">
							<digest>
								Ward specular shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="cook_torrance">
							<digest>
								Cook-Torrance specular shading model
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Specular Model" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
		<attribute name="specular_size" get="1" set="1" type="float" size="1">
			<digest>
				Specular toon component size
			</digest>
			<description>
				Specular toon component size. Only valid when the specular shading model is toon.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Specular Size" />
			</attributelist>
		</attribute>
		<attribute name="specular_smooth" get="1" set="1" type="float" size="1">
			<digest>
				Specular toon component smoothness
			</digest>
			<description>
				Specular toon component smoothness. Only valid when the specular shading model is toon.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Specular Smooth" />
			</attributelist>
		</attribute>
		<attribute name="type" get="1" set="0" type="symbol" size="1">
			<digest>
				Material type
			</digest>
			<description>
				Material type (a descriptive name of the material).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Type" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="auto_material" />
		<jitterattribute name="automatic" />
		<jitterattribute name="aux_color" />
		<jitterattribute name="axes" />
		<jitterattribute name="color" />
		<jitterattribute name="dest_dim" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="fog_color" />
		<jitterattribute name="fog_density" />
		<jitterattribute name="fog_params" />
		<jitterattribute name="fog_range" />
		<jitterattribute name="gl_color" />
		<jitterattribute name="inherit_all" />
		<jitterattribute name="inherit_color" />
		<jitterattribute name="inherit_depth" />
		<jitterattribute name="inherit_fog" />
		<jitterattribute name="inherit_material" />
		<jitterattribute name="inherit_poly" />
		<jitterattribute name="inherit_texture" />
		<jitterattribute name="inherit_transform" />
		<jitterattribute name="layer" />
		<jitterattribute name="lighting_enable" />
		<jitterattribute name="mat_ambient" />
		<jitterattribute name="mat_diffuse" />
		<jitterattribute name="mat_emission" />
		<jitterattribute name="mat_specular" />
		<jitterattribute name="material" />
		<jitterattribute name="matfile" />
		<jitterattribute name="name" />
		<jitterattribute name="position" />
		<jitterattribute name="shader" />
		<jitterattribute name="shadow_caster" />
		<jitterattribute name="shininess" />
		<jitterattribute name="smooth_shading" />
		<jitterattribute name="two_sided" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example img="jit.gl.material.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.cubemap" />
		<seealso name="jit.gl.model" />
		<seealso name="jit.gl.render" />
		<seealso name="jit.gl.shader" />
		<seealso name="jit.gl.texture" />
	</seealsolist>
	<discussion>
		This object requires one argument: the name of a drawing context. A named drawing context is a named instance of a <o>jit.window</o>, <o>jit.pwindow</o>, or <o>jit.matrix</o> object that has an instance of the <o>jit.gl.render</o> object associated with it. Additionally it can reference the name of a <o>jit.gl.node</o> sub-context. This value may also be set via the OB3D <at>drawto</at> attribute. If no argument is present, the object is implicitly added to the first valid drawing context or sub-context found in the current patch or by searching up the patcher hierarchy.
	</discussion>
</c74object>
