Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

1

06.12.2012, 21:05

Artefakte bei Phong Shading(2)

Ich habe vor längerer Zeit schon mal so einen Thread eröffnet. Diesmal jedoch sind es andere Artefakte. Ich habe JPG Texturen(ja ich weiß Artefakte). Doch wenn ihr euch das Bild anseht kann man erkennen das das nie im leben von JPG kommen kann. Es sind umso mehr Artefakte da, je öfter ich das Objekt rendern muss(mehrer Lichter, mehrere Passes). Die Berechnung im Shader ist folgende:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
float4 PS_PointLighting(VS_OUTPUT_POINT IN) : COLOR
{
  float atten_ = saturate(1.0f - dot(IN.lightDir, IN.lightDir) / 1.0f);

    float3 n = normalize(IN.normal);
    float3 l = normalize(IN.lightDir);
    float3 v = normalize(IN.viewDir);
    float3 h = normalize(l + v);
    
    float nDotL = saturate(dot(n, l));
    float nDotH = saturate(dot(n, h));
    float power = (nDotL == 0.0f) ? 0.0f : pow(nDotH, material.shininess);
    

    float4 color =  globalAmbient * (globalAmbient + atten_ * light.ambient) +
                   (IN.diffuse * nDotL *atten_);
    if(bSpecular)
        color += (IN.specular * power * atten_);
    
    if(bTextured)
        return color * tex2D(colorMap, IN.texCoord);
    else
        return color;
}

Der Sampler:

C-/C++-Quelltext

1
2
3
4
5
6
7
sampler colorMap = sampler_state
{
    Texture = <colorMapTexture>;
    MinFilter = ANISOTROPIC;
    MagFilter = ANISOTROPIC;
    MipFilter = ANISOTROPIC;
};
»FSA« hat folgendes Bild angehängt:
  • Screenshot.png

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

2

06.12.2012, 21:10

Hier noch deutlicher. Das ist noch nicht mal eine JPG Textur und war auch nie eine.
»FSA« hat folgendes Bild angehängt:
  • Screenshot.png

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

06.12.2012, 21:11

Vielleicht erklärst Du nochmal genau, was die Artefakte sind oder machst rote Kringel rundrum. Ich sehe da nur eine schwarze Textur mit einem grauen Götzen-Gesicht.

Edit: Da Du in der Zwischenzeit ein zweites Bild nachgeschoben hast: Keine Ahnung. Was sollte man denn überhaupt sehen? Was ist auf der Textur drauf?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

4

06.12.2012, 21:15

So sieht das 2. Bild in original aus.
Bei dem Götzen-Gesicht meine ich die weißen Flecken. Die gehören dort nicht hin. Genauso wie die roten Flecken um die weißen. Das LIcht ist übrigens weiß.
»FSA« hat folgendes Bild angehängt:
  • Picture.png

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

06.12.2012, 21:18

Dein Frame-Buffer bietet wohl nur 8 Bits pro Farbkanal.
Wenn du dann viele Passes übereinander renderst, bekommst du diese miese Genauigkeit schnell zu spüren.
Entweder benutzt du ein Fließkomma-Render-Target (später nach 8-Bit umrechnen, z.B. Tone-Mapping -> HDR) oder du versuchst, möglichst viele Passes zusammenzufassen. Im Shader rechnest du ja mit viel höherer Präzision.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

6

06.12.2012, 21:18

Bei dem zweiten Bild sehe ich nichts, was da falsch ist, halte ich für durchaus korrekt. Das Götzenbild kann ich nicht beurteilen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

7

06.12.2012, 21:20

Zitat von »Davod«


Dein Frame-Buffer bietet wohl nur 8 Bits pro Farbkanal.

Meinst du damit mein Back-Buffer? Wenn ja, der hat 32 Bit.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

06.12.2012, 21:21

32 Bit pro Kanal??? Sicher?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

FSA

Community-Fossil

  • »FSA« ist der Autor dieses Themas
  • Private Nachricht senden

9

06.12.2012, 21:22

Oh falsch gelesen... 32 Bit insgesamt und 8 Bit pro Kanal ja. Soll ich mein Back-Buffer jetzt als HDR Textur erstellen?

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

10

06.12.2012, 21:25

Wenn du keine solchen Ergebnisse willst, die bei 8 Bit absolut korrekt sind, brauchst Du wie David schon sagte ein anderes Format.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige