	pmt3d - a Procedual 3D Modeling Tool for OpenGL.
	pmt file description of current version.

DESCRIPTION
	 front surface is counter-clockwise.
	 if input the floating point, expression(+-*/) support.

	　表面ポリゴンは反時計回りですが、両面レンダリングしているので法線に
	よっては裏面でも表面に見えてしまいますので注意してください。
	※今後、高速化のために裏面レンダリングを省略する場合があります。

	　浮動小数点入力の場合、四則演算をサポートしていますが、pmteditor等の
	アプリケーションから保存すると数値に置き換わってしまうので注意してくだ
	さい。

	・pmtファイル内部の、パス名に対するディレクトリ区切りについて。
	　textureコマンド等ファイル名を渡すものは'/'をディレクトリの区切りに使用
	してください。でないと、FreeBSDなどのUNIX版ではテクスチャをロード出来なく
	なりますx

	※pmtファイル行頭にある'#'記号はコメント行として無視します。

	・ポリゴンモデルの法線自動計算について。
	　ポリゴンモデルで、normalの値がxyz 3つとも0だと法線を自動計算します。
	　詳しく説明すると、三角形の3つ目以降のnormalの値が0だと自動計算します。
	　一度計算した頂点が、共有頂点で再び使用される場合には再計算しません。
	※ポリゴン法線の自動計算は暫定版であり、頂点共有時の按配には対応していま
	せん。

	・NURBSモデルの法線自動計算は、内部共有頂点の按配に対応しています。
	　ですので滑らかなレンダリング結果が得られます。

COMMAND EXAMPLE 1 - basic
	begin polygon_surface,3,3
	position -1,0,0
	position 0,1,0
	position 1,0,0
	element 0
	element 1
	element 2
	tangent 1,0,0
	tangent 1,0,0
	tangent 1,0,0
	binormal 0,1,0
	binormal 0,1,0
	binormal 0,1,0
	normal 0,0,1
	normal 0,0,1
	normal 0,0,1
	end

COMMAND EXAMPLE 2 - applicable
	begin polygon_surface,3,3
	circle 1,0,0
	circle 1,60,0
	circle 1,120,0
	element 0
	element 1
	element 2
	tangent 1,0,0
	tangent 1,0,0
	tangent 1,0,0
	binormal 0,1,0
	binormal 0,1,0
	binormal 0,1,0
	normal 0,0,1
	normal 0,0,1
	normal 0,0,1
	end

COMMAND SYNTAX
	begin <operation,count...>	make the object.
	...
	end

	texture relative-path		texture path.
	bumpmap relative-path		bump-mapping texture path.
	spectex relative-path		specular mapping texture path.
	texfilter true/false,true/false,true/false
					is_mipmap,is_nearlinear,is_maglinear
	bumpofs <true/false>		bumpmap pixel align.(default true)
	bump2mono <true/false>		bumpmap convert to monochrome heightmap.
	aniso <float>			anisotropic texture parameter.
	refractfactor <float>		refract factor parameter.(0: reflect)
	mercatorsphere <true/false>	apply mercator y-texcoord factor.

	position <x,y,z>		hex input are direct float.
	normal <x,y,z>			default is z+ axis.
	color <r,g,b,a>			default is gray.
	circle <radius,angle,z>		top is angle 0, counter-clockwise.
	sphere <radius,latitude,longitude>	front is top angle 0,0

OPERATION LIST
	nurbs_surface
	polygon_surface

NURBS OPERATION 2 - surface
	※knotパラメーターの範囲は 0〜1.0でなければなりません。
	　定義上は0〜1.0の範囲を超えてもかまいませんが、範囲外は描画されません。
	　本制限により、0〜1.0の範囲でテクスチャー全体を正確に貼る事が出来ます。
	begin nurbs_surface,<Nx,Px,Ny,Py>
					N: control points count, P: nurbs rank
	texture relative-path		texture path.
	bumpmap relative-path		bump-mapping texture path.
	spectex relative-path		specular mapping texture path.
	texfilter true/false,true/false,true/false
					is_mipmap,is_nearlinear,is_maglinear
	bumpofs <true/false>		bumpmap -0.5 pixel align.(default true)	
	bump2mono <true/false>		bumpmap convert to monochrome heightmap.
	aniso <float>			anisotropic texture parameter.
	refractfactor <float>		refract factor parameter.(0: reflect)

	knot1 <k>			k1[0][0] input the single value.
	knot1 <k>			k1[0][1]
	...
	knot1 <k>			k1[0][Nx+Px-1]
	...
	knot1 <k>			k1[Ny-1][0]
	...
	knot1 <k>			k1[Ny-1][Nx+Px-1]
	weight <w>			w[0][0] input the single value.
	...
	weight <w>			w[0][Nx]
	position <x,y,z>		n[0][0]
	position <x,y,z>		n[0][1]
	position <x,y,z>		n[0][Nx]
	...
	knot2 <k>			k2[0][0] input the single value.
	knot2 <k>			k2[0][1]
	...
	knot2 <k>			k2[0][Ny+Py-1]
	...
	knot2 <k>			k2[Nx-1][0]
	...
	knot2 <k>			k2[Nx-1][Ny+Py-1]
	end

POLYGON OPERATION - surface
	begin polygon_surface,<Vn,En>
					Vn: vertex count, En: elements count.
	texture relative-path		texture path.
	bumpmap relative-path		bump-mapping texture path.
	spectex relative-path		specular mapping texture path.
	texfilter true/false,true/false,true/false
					is_mipmap,is_nearlinear,is_maglinear
	bumpofs <true/false>		bumpmap -0.5 pixel align.(default true)
	bump2mono <true/false>		bumpmap convert to monochrome heightmap.
	aniso <float>			anisotropic texture parameter.
	refractfactor <float>		refract factor parameter.(0: reflect)

	color <r,g,b,a>			colorやtexcoordはposition個々の直前に
	texcoord <s,t>			置かないと反映されません。
	position <x,y,z>

	element <n>			n: vertex index. -1: restart.

	tangent <x,y,z>			for bump mapping and lighting.
	binormal <x,y,z>
	normal <x,y,z>

	end

OPTION SYNTAX
	begin environment
	mode ref|skybox			environment texture mode.
	cubetex basefilename.ext	cube map texture file name.
				basefilename_{posx,negx,posy,negy,posz,negz}.ext
	reflectalpha 0〜1.0		environment mixing rate.
	refractalpha 0〜1.0		environment mixing rate.
	refractfactor 0〜∞		refraction Eta.
	end
[eof]
