Hi,
Das sieht zwar ähnlich aus wie das Bahn-Netz in Frankreich oder Stuttgart, aber ein Straßennetz einer Stadt sieht eigentlich weniger zentralistisch aus als das. Es gibt da viele Arme in dem Bild, die lange Strecken über das Zentrum brauchen, damit man zum jeweils anderen Arm kommt. So sehen Straßen eher nicht aus.
Ja das stimmt. Die Menschen in dieser Stadt leben sehr Zentralistisch
Spaß beiseite, der Algorithmus für den Straßenbau ist archaisch. Aber das Framework auf dem er basiert, auf dem auch Vegetation basieren wird usw. das ist sehr belastbar. Falls du Interesse hast dir das mal anzusehen poste die Engine-Klasse. Da nutze ich sogar eine ping-pong - Methode
Es gibt bestimmt trotzdem viel zu verbessern
Wenn die Grafik steht dann mache ich mich da wieder ran.
...effect.Techniques[0].Passes[0].Apply();
Hat leider nichts verändert.
Zeig mal den Code wo die Shader ausgeführt werden. Möglicherweise ist da was falsch.
Ich hoffe das ist jetzt das richtige, die .fx Datei:
//----------------------------------------------------
//-- --
//--
www.riemers.net --
//-- Series 4: Advanced terrain --
//-- Shader code --
//-- --
//----------------------------------------------------
//------- Constants --------
float4x4 xView;
float4x4 xProjection;
float4x4 xWorld;
float3 xLightDirection;
float xAmbient;
bool xEnableLighting;
//------- Texture Samplers --------
Texture xTexture;
sampler TextureSampler = sampler_state { texture = <xTexture> ; magfilter = LINEAR; minfilter = LINEAR; mipfilter=LINEAR; AddressU = mirror; AddressV = mirror;};
//------- Technique: Colored --------
struct ColVertexToPixel
{
float4 Position : POSITION;
float4 Color : COLOR0;
float LightingFactor: TEXCOORD0;
};
struct ColPixelToFrame
{
float4 Color : COLOR0;
};
ColVertexToPixel ColoredVS( float4 inPos : POSITION, float4 inColor: COLOR, float3 inNormal: NORMAL)
{
ColVertexToPixel Output = (ColVertexToPixel)0;
float4x4 preViewProjection = mul (xView, xProjection);
float4x4 preWorldViewProjection = mul (xWorld, preViewProjection);
Output.Position = mul(inPos, preWorldViewProjection);
Output.Color = inColor;
float3 Normal = normalize(mul(normalize(inNormal), xWorld));
Output.LightingFactor = 1;
if (xEnableLighting)
Output.LightingFactor = saturate(dot(Normal, -xLightDirection));
return Output;
}
ColPixelToFrame ColoredPS(ColVertexToPixel PSIn)
{
ColPixelToFrame Output = (ColPixelToFrame)0;
Output.Color = PSIn.Color;
Output.Color.rgb *= saturate(PSIn.LightingFactor + xAmbient);
return Output;
}
technique Colored
{
pass Pass0
{
VertexShader = compile vs_2_0 ColoredVS();
PixelShader = compile ps_2_0 ColoredPS();
}
}
//------- Technique: Textured --------
struct TexVertexToPixel
{
float4 Position : POSITION;
float4 Color : COLOR0;
float LightingFactor: TEXCOORD0;
float2 TextureCoords: TEXCOORD1;
};
struct TexPixelToFrame
{
float4 Color : COLOR0;
};
TexVertexToPixel TexturedVS( float4 inPos : POSITION, float3 inNormal: NORMAL, float2 inTexCoords: TEXCOORD0)
{
TexVertexToPixel Output = (TexVertexToPixel)0;
float4x4 preViewProjection = mul (xView, xProjection);
float4x4 preWorldViewProjection = mul (xWorld, preViewProjection);
Output.Position = mul(inPos, preWorldViewProjection);
Output.TextureCoords = inTexCoords;
float3 Normal = normalize(mul(normalize(inNormal), xWorld));
Output.LightingFactor = 1;
if (xEnableLighting)
Output.LightingFactor = saturate(dot(Normal, -xLightDirection));
return Output;
}
TexPixelToFrame TexturedPS(TexVertexToPixel PSIn)
{
TexPixelToFrame Output = (TexPixelToFrame)0;
Output.Color = tex2D(TextureSampler, PSIn.TextureCoords);
Output.Color.rgb *= saturate(PSIn.LightingFactor + xAmbient);
return Output;
}
technique Textured
{
pass Pass0
{
VertexShader = compile vs_2_0 TexturedVS();
PixelShader = compile ps_2_0
TexturedPS();
}
}
... leider kann ich den Code nicht als Code posten, zerschießt sich.
Ich kann auch das ganze Projekt hochladen oder so.
LG