mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 13:20:27 -06:00
a lot of people don't get convinced by my "Pseudo-antialiasing " effect and is true is not near the quality of the true effect so :)
true antialiasing using supersampling: 3 modes implemented: 2x = is a one and a half samples supersampled buffer with a linear texture fetch, this produce a similar result of a 2x MSAA 4x = four samples with a aligned texture fetch in the center of the 4 samples, this produce a little best effect that the first mode. 8x = is a four samples with a rotated grid fetching producing a nicer (really nicer in some cases) antialiasing. please test an let me know if you like this :) i remember to everyone that supersampling is expensive so don't complain in speed drops :) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5006 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -175,29 +175,18 @@ void VertexShaderCache::Init()
|
||||
sprintf(vFSAAProg, "struct VSOUTPUT\n"
|
||||
"{\n"
|
||||
"float4 vPosition : POSITION;\n"
|
||||
"float4 vColor0 : COLOR0;\n"
|
||||
"float4 vTexCoord : TEXCOORD0;\n"
|
||||
"float4 vTexCoord1 : TEXCOORD1;\n"
|
||||
"float4 vTexCoord2 : TEXCOORD2;\n"
|
||||
"float4 vTexCoord3 : TEXCOORD3;\n"
|
||||
"float4 vTexCoord4 : TEXCOORD4;\n"
|
||||
"float2 vTexCoord5 : TEXCOORD5;\n"
|
||||
"float2 vTexCoord6 : TEXCOORD6;\n"
|
||||
"float2 vTexCoord7 : TEXCOORD7;\n"
|
||||
"float2 vTexCoord : TEXCOORD0;\n"
|
||||
"float2 vTexCoord1 : TEXCOORD1;\n"
|
||||
"float2 vTexCoord2 : TEXCOORD2;\n"
|
||||
"float2 vTexCoord3 : TEXCOORD3;\n"
|
||||
"};\n"
|
||||
|
||||
"void main( out VSOUTPUT OUT,in float4 inPosition : POSITION,in float2 inTEX0 : TEXCOORD0,in float2 inTEX1 : TEXCOORD1,in float2 inTEX2 : TEXCOORD2)\n"
|
||||
"void main( out VSOUTPUT OUT,in float4 inPosition : POSITION,in float2 inTEX0 : TEXCOORD0,in float2 inTEX1 : TEXCOORD1)\n"
|
||||
"{\n"
|
||||
"OUT.vPosition = inPosition;\n"
|
||||
"OUT.vColor0 = float4(inTEX2.x / inTEX2.y,0.0f,0.0f,0.0f);\n"
|
||||
"OUT.vTexCoord = inTEX0.xyyx + (float4(-1.0f,-1.0f,-0.45f,-0.45f) * inTEX1.xyyx);\n"
|
||||
"OUT.vTexCoord1 = inTEX0.xyyx + (float4( 0.0f,-1.0f,-0.45f, 0.45f) * inTEX1.xyyx);\n"
|
||||
"OUT.vTexCoord2 = inTEX0.xyyx + (float4( 1.0f,-1.0f, 0.45f,-0.45f) * inTEX1.xyyx);\n"
|
||||
"OUT.vTexCoord3 = inTEX0.xyyx + (float4(-1.0f, 1.0f, 0.45f, 0.45f) * inTEX1.xyyx);\n"
|
||||
"OUT.vTexCoord4 = inTEX0.xyyx + (float4( 0.0f, 1.0f, 0.0f, 0.0f) * inTEX1.xyyx);\n"
|
||||
"OUT.vTexCoord5 = inTEX0 + (float2( 1.0f, 1.0f) * inTEX1);\n"
|
||||
"OUT.vTexCoord6 = inTEX0 + (float2( 1.0f, 0.0f) * inTEX1);\n"
|
||||
"OUT.vTexCoord7 = inTEX0 + (float2(-1.0f, 0.0f) * inTEX1);\n"
|
||||
"OUT.vTexCoord = inTEX0 + (float2(-0.1830127f,-0.6830127f) * inTEX1);\n"
|
||||
"OUT.vTexCoord1 = inTEX0 + (float2(-0.6830127f, 0.1830127f) * inTEX1);\n"
|
||||
"OUT.vTexCoord2 = inTEX0 + (float2( 0.6830127f,-0.1830127f) * inTEX1);\n"
|
||||
"OUT.vTexCoord3 = inTEX0 + (float2( 0.1830127f, 0.6830127f) * inTEX1);\n"
|
||||
"}\n");
|
||||
FSAAVertexShader = D3D::CompileAndCreateVertexShader(vFSAAProg, (int)strlen(vFSAAProg));
|
||||
|
||||
|
Reference in New Issue
Block a user