WFX: Difference between revisions

From wowdev
Jump to navigation Jump to search
(New page: '''Bold''' characters are needed for parsing the file right. Non-bold functions are optional. '''Effect('''name, unk''')''' '''{''' '''FixedFunc()''' '''{''' '''Pass(type, unk)'...)
 
No edit summary
Line 1: Line 1:
'''Bold''' characters are needed for parsing the file right. Non-bold functions are optional.
'''Bold''' characters are needed for parsing the file right. Non-bold functions are optional.


The shaders referenced in the RenderState*()s are references to the [[BLS]] files.


  '''Effect('''name, unk''')'''
  '''Effect(name, unk)''' // this name is referenced from the app (hardcoded)
  '''{'''
  '''{'''
  '''FixedFunc()'''
  '''FixedFunc()'''
Line 12: Line 13:
  AlphaOp0(mode);
  AlphaOp0(mode);
  AlphaOp1(mode);
  AlphaOp1(mode);
  RenderStateARGB(type, color, color); // see list below
  RenderStateARGB(shader, color, color); // see list below
  RenderStateF(type, float, float); // float
  RenderStateF(shader, float, float); // float
  RenderStateI(type, integer, integer); // see list below
  RenderStateI(shader, integer, integer); // see list below
  '''}'''
  '''}'''
  ''' }'''
  ''' }'''
Line 24: Line 25:
  PixelShader(mode);
  PixelShader(mode);
  Specular(mode);
  Specular(mode);
  RenderStateARGB(type, color, color); // see list below
  RenderStateARGB(shader, color, color); // see list below
  RenderStateF(type, float, float); // float
  RenderStateF(shader, float, float); // float
  RenderStateI(type, integer, integer); // see list below
  RenderStateI(shader, integer, integer); // see list below
  '''}'''
  '''}'''
  ''' }'''
  ''' }'''

Revision as of 00:18, 27 April 2009

Bold characters are needed for parsing the file right. Non-bold functions are optional.

The shaders referenced in the RenderState*()s are references to the BLS files.

Effect(name, unk)	// this name is referenced from the app (hardcoded)
{
	FixedFunc()
	{
		Pass(type, unk)
		{
			ColorOp0(mode);
			ColorOp1(mode);
			AlphaOp0(mode);
			AlphaOp1(mode);
			RenderStateARGB(shader, color, color); // see list below
			RenderStateF(shader, float, float); // float
			RenderStateI(shader, integer, integer); // see list below
		}
	}
	Shader()
	{
		Pass(type, unk)
		{
			VertexShader(mode);
			PixelShader(mode);
			Specular(mode);
			RenderStateARGB(shader, color, color); // see list below
			RenderStateF(shader, float, float); // float
			RenderStateI(shader, integer, integer); // see list below
		}
	}
}

Pass: type

  • Default
  • Opaque
  • AlphaKey
  • Alpha
  • Add
  • Mod
  • Mod2x
  • ModAdd
  • InvSrcAlphaAdd
  • InvSrcAlphaOpaque
  • SrcAlphaOpaque
  • NoAlphaAdd
  • ConstantAlpha

*****Op*: mode

  • Mod
  • Mod2x
  • Add
  • PassThru
  • Decal
  • Fade

RenderStateARGB: color

  • white
  • black
  • every value getting a good result with strtoul(string, 0, 0x10)

RenderStateI: integer

  • true
  • false
  • TexGen_Disable
  • TexGen_Object
  • TexGen_World
  • TexGen_View
  • TexGen_ViewReflection
  • TexGen_ViewNormal
  • TexGen_SphereMap
  • TS_PassThru
  • TS_Affine
  • TS_Proj

RenderState: type

  • MatDiffuse
  • MatEmissive
  • MatSpecular
  • MatSpecularExp
  • NormalizeNormals
  • SceneAmbient
  • DepthTest
  • DepthFunc
  • DepthWrite
  • ColorWrite
  • Culling
  • ClipPlaneMask
  • Lighting
  • TexLodBiasZ // Z=0-7
  • TexGenZ // Z=0-7
  • TextureShaderZ // Z=0-7
  • PointScale
  • PointScaleAttenuation
  • PointScaleMin
  • PointScaleMax
  • PointSprite
  • ConstBlendAlpha
  • Unknown