const char g_default[] = "// Default Shader\n" "// Restores all default Direct X 8 renderstates\n" "// (c)2003 Virtools\n" "\n" "// The Default Shader is not saved and thus cannot be modified.\n" "// This is for coherence reason (from one .cmo to another the default\n" "// rendering will always be the same).\n" "\n" "// Beneath you'll find the list of all Automatics parameters known by Virtools.\n" "// Even though they aren't used by the Default Shader, they appear here \n" "// to help you remember the Semantics syntax.\n" "\n" "//--- Standard Automatic Parameters\n" "matrix mWOR; // Object World Matrix\n" "matrix mVIE; // Camera View Matrix\n" "matrix mPRO; // Projection Matrix\n" "matrix mWVI; // World x View Matrix\n" "matrix mWVP; // World x View x Projection Matrix\n" "vector mEPO; // Eye Position Vector\n" "//---------------------------------------------------------------------\n" "\n" "//--- Additional Automatic Parameters\n" "vector vPOS; // Object Position\n" "\n" "//--- Texures\n" "\n" "texture tTEX; // Material's Texture\n" "texture tNUL; // Null Texture\n" "\n" "vector vDIF; // Material's Diffuse Color\n" "vector vEMI; // Material's Emissive Color\n" "vector vSPE; // Material's Specular Color\n" "vector vAMB; // Material's Ambient Color\n" "\n" "float fPOW; // Material's Power Value\n" "\n" "vector fTIM; // Time elapsed since play event (in seconds),sinf(time),cosf(time),1.\n" "\n" "\n" "// Identity Matrix\n" "matrix matI = \n" "[\n" " 1.0,0.0,0.0,0.0,\n" " 0.0,1.0,0.0,0.0,\n" " 0.0,0.0,1.0,0.0,\n" " 0.0,0.0,0.0,1.0\n" "];\n" "\n" "//---------------------------------------------------------------------\n" "// Shaders\n" "// PixelShaderConstants and VertexShaderConstants are unchanged\n" "//---------------------------------------------------------------------\n" "\n" "// Use the code below as a reference to common states.\n" "// If a shader does not modify a state then the state\n" "// will remain to its initial value defined below.\n" "\n" "technique Def\n" "{\n" " pass Rest\n" " {\n" " //---------------------------------------------------------------------\n" " // Transform states\n" " // WorldTransform, ViewTransform, ProjectionTransform are automatically\n" " // set from within Virtools 3d engine.\n" " //---------------------------------------------------------------------\n" "\n" " //---------------------------------------------------------------------\n" " // Light states\n" " //\n" " // Warning: With LightEnable[n] = false, the compiler skips all other\n" " // light states. So even if the default light state LightRange is set to\n" " // 1000, it will be 0 !\n" " // That is why you must explicitly set light state in order to see light\n" " // shine. Do not forget to set:\n" " // - LightEnable[0] = true;\n" " // - LightAttenuation0[0] = greater than 0 (like 1);\n" " // - LightDiffuse[0] = non-black color;\n" " // - LightRange[0] = greater than 0 (like 1000);\n" " //---------------------------------------------------------------------\n" " LightEnable[0] = false;\n" " \n" " LightAmbient[0] = 0x00000000;\n" " LightAttenuation0[0] = 0.0;\n" " LightAttenuation1[0] = 1.0;\n" " LightAttenuation2[0] = 2.0;\n" " LightDiffuse[0] = 0x00000000;\n" "// LightDirection[0] = (0.0, 0.0, 1.0);\n" " LightFalloff[0] = 1.0;\n" " LightPhi[0] = 0.0;\n" " LightPosition[0] = (0.0, 0.0, 0.0);\n" " LightRange[0] = 0.0;\n" " LightSpecular[0] = 0x00000000;\n" " LightTheta[0] = 0.0;\n" " LightType[0] = DIRECTIONAL;\n" "\n" " //---------------------------------------------------------------------\n" " // Material states\n" " //---------------------------------------------------------------------\n" " MaterialAmbient = 0x00000000;\n" " MaterialDiffuse = 0x00000000;\n" " MaterialEmissive = 0x00000000;\n" " MaterialPower = 0.0;\n" " MaterialSpecular = 0x00000000;\n" "\n" " //---------------------------------------------------------------------\n" " // Renderstates/Vertex Pipeline\n" " //---------------------------------------------------------------------\n" " Ambient = 0x00000000;\n" " AmbientMaterialSource = MATERIAL;\n" "// Clipping = 0;\n" "// ClipPlaneEnable = false;\n" " ColorVertex = false;\n" " CullMode = CCW;\n" " DiffuseMaterialSource = COLOR1;\n" " EmissiveMaterialSource = MATERIAL;\n" " FogColor = 0x00000000;\n" " FogDensity = 1.0;\n" " FogEnable = false;\n" " FogEnd = 1.0;\n" " FogStart = 0.0;\n" " FogTableMode = NONE;\n" "// FogVertexMode = NONE;\n" "// IndexedVertexBlendEnable = false;\n" " Lighting = true;\n" " LocalViewer = true;\n" " MultiSampleAntialias = true;\n" " MultiSampleMask = 0xFFFFFFFF;\n" " NormalizeNormals = false;\n" " PatchSegments = 0;\n" " PointScale_A = 1.0;\n" " PointScale_B = 0.0;\n" " PointScale_C = 0.0;\n" " PointScaleEnable = false;\n" " PointSize = 1.0;\n" " PointSize_Min = 1.0;\n" " PointSize_Max = 64.0;\n" " PointSpriteEnable = false;\n" " RangeFogEnable = false;\n" " SpecularEnable = false;\n" " SpecularMaterialSource = COLOR2;\n" "// TweenFactor = 0;\n" " VertexBlend = DISABLE;\n" "\n" " //---------------------------------------------------------------------\n" " // Renderstates/Pixel Pipeline\n" " //---------------------------------------------------------------------\n" " AlphaBlendEnable = false;\n" " AlphaFunc = ALWAYS;\n" " AlphaRef = 0;\n" " AlphaTestEnable = false;\n" " BlendOp = ADD;\n" "// ColorWriteEnable = TRUE;\n // DWORD on DX8.1, BOOL on XBOX, problem" "// DepthBias = 0.0;\n" " DestBlend = ZERO;\n" " DitherEnable = false;\n" " FillMode = SOLID;\n" "// LastPixel = true;\n" " ShadeMode = GOURAUD;\n" " SrcBlend = ONE;\n" " StencilEnable = false;\n" " StencilFail = KEEP;\n" " StencilFunc = ALWAYS;\n" " StencilMask = 0xFFFFFFFF;\n" " StencilPass = KEEP;\n" " StencilRef = 0;\n" " StencilWriteMask = 0xFFFFFFFF;\n" " StencilZFail = KEEP;\n" " TextureFactor = 0xFFFFFFFF;\n" " Wrap0 = 0;\n" " Wrap1 = 0;\n" " Wrap2 = 0;\n" " Wrap3 = 0;\n" " ZEnable = true;\n" " ZFunc = LESSEQUAL;\n" " ZWriteEnable = true;\n" "\n" " //---------------------------------------------------------------------\n" " // Sample states\n" " //---------------------------------------------------------------------\n" " AddressU[0] = WRAP;\n" " AddressV[0] = WRAP;\n" " AddressW[0] = WRAP;\n" " BorderColor[0] = 0x00000000;\n" " MagFilter[0] = LINEAR;\n" " MaxAnisotropy[0] = 1;\n" " MaxMipLevel[0] = 0;\n" " MinFilter[0] = LINEAR;\n" " MipFilter[0] = LINEAR;\n" " MipMapLodBias[0] = 0;\n" "// SRGBTexture[0] = 0;\n" " \n" " //---------------------------------------------------------------------\n" " // Texture states/Textures\n" " //---------------------------------------------------------------------\n" " Texture[0] = ;\n" " Texture[1] = ;\n" " Texture[2] = ;\n" " Texture[3] = ;\n" " \n" " //---------------------------------------------------------------------\n" " // Texture states/Texture stages\n" " //---------------------------------------------------------------------\n" " AlphaOp[0] = SELECTARG1;\n" " AlphaArg0[0] = CURRENT;\n" " AlphaArg1[0] = TEXTURE;\n" " AlphaArg2[0] = CURRENT;\n" " ColorOp[0] = MODULATE;\n" " ColorArg0[0] = CURRENT;\n" " ColorArg1[0] = TEXTURE;\n" " ColorArg2[0] = CURRENT;\n" " BumpEnvLScale[0] = 0.0;\n" " BumpEnvLOffset[0] = 0.0;\n" " BumpEnvMat00[0] = 0;\n" " BumpEnvMat01[0] = 0;\n" " BumpEnvMat10[0] = 0;\n" " BumpEnvMat11[0] = 0;\n" " ResultArg[0] = CURRENT;\n" "\n" " AlphaOp[1] = DISABLE;\n" " ColorOp[1] = DISABLE;\n" " AlphaOp[2] = DISABLE;\n" " ColorOp[2] = DISABLE;\n" " AlphaOp[3] = DISABLE;\n" " ColorOp[3] = DISABLE;\n" "\n" " //---------------------------------------------------------------------\n" " // Texture states/Texture coordinates\n" " //---------------------------------------------------------------------\n" " TexCoordIndex[0] = 0;\n" " TextureTransformFlags[0] = DISABLE;\n" " TextureTransform[0] = ;\n" " TexCoordIndex[1] = 1;\n" " TextureTransformFlags[1] = DISABLE;\n" " TextureTransform[1] = ;\n" " TexCoordIndex[2] = 2;\n" " TextureTransformFlags[2] = DISABLE;\n" " TextureTransform[2] = ;\n" " TexCoordIndex[3] = 3;\n" " TextureTransformFlags[3] = DISABLE;\n" " TextureTransform[3] = ;\n" "\n" " VertexShader =\n" " decl\n" " {\n" " stream 0;\n" " float v0[3]; // Position\n" " float v3[3]; // Normal\n" " float v7[2]; // Texture Coord1\n" " };\n" " }\n" "}\n" ;