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

31

12.12.2010, 16:01

Das heisst, dass im FVF-Normalen sind^^
Komm, lass dir doch einfach im Shader mal die Normalen als Farbe ausgeben, dann weisst du es ja ;)

32

12.12.2010, 16:01

hab ich vorhin schon gemacht hat auch funktioniert
Metal ist keine Musik sondern eine Religion.

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

33

12.12.2010, 16:04

Dann als nächstes die Lichtrichtung+farbe und die streufarbe des objektes, sind die alle != 0

Einfach einzeln alle variablen als farbe setzen und schauen, ob du ein bild bekommst, das nicht einfach schwarz ist. :rolleyes:

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

34

12.12.2010, 16:10

HLSL-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
25
26
27
28
29
 struct VS_INPUT 
 { 
    float4 PositionIn : POSITION; 
    float3 NormalIn  : NORMAL; 
    float4 DiffuseIn  : COLOR0; 
 }; 
  
 struct VS_OUTPUT 
 { 
    float4 PositionOut : POSITION; 
    float4 DiffuseOut    : COLOR0; 
 }; 
  
 float4x4 ShaderMatrix : register(c0); 
 float4x4 WorldMatrix : register(c4); 
 float4  DiffuseLightColor : register(c10); 
 float4  LightDirection : register(c12); 
  
 VS_OUTPUT main(const VS_INPUT VertexIn) 
 { 
      VS_OUTPUT VertexOut; 
        float3 transformedNormal = normalize(mul(VertexIn.NormalIn,WorldMatrix)); 
       float diffuseFactor = saturate(dot(transformedNormal, normalize(-LightDirection).xyz)); 
        VertexOut.DiffuseOut =  float4(transformedNormal); 
        VertexOut.PositionOut = mul(VertexIn.PositionIn, ShaderMatrix); 
    
        return VertexOut; 
 
}

Ich bin auf was interessantes gestoßen: transformedNormal = 0! Das heißt diffuseFactor auch.
Metal ist keine Musik sondern eine Religion.

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

35

12.12.2010, 16:15

Das ist doch schon mal ein anfang.

also muss entweder die WeltMatrix =0 sein (unwarscheinlich!) oder die normale.

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

36

12.12.2010, 16:15

Das bedeutet entweder dass WorldMatrix 0 ist oder eben die Normale 0 ist...

37

12.12.2010, 16:19

Aber wie kann die Normal 0 sein wenn ich doch die if Abfrage des FVF drin hab?
Metal ist keine Musik sondern eine Religion.

38

12.12.2010, 16:19

Die Normalen könnten auch falsch sein ;)

39

12.12.2010, 16:20

Und wie könnte ich das beheben?
Metal ist keine Musik sondern eine Religion.

CBenni::O

1x Contest-Sieger

Beiträge: 1 145

Wohnort: Stuttgart

  • Private Nachricht senden

40

12.12.2010, 16:37

D3DXMesh::ComputeNormals gibt es glaube ich...

Schau mal in die Doku.

mfg CBenni::O
Ein Mitglied der VEGeiCoUndGraSonMaWiGeS Bewegung.
42!
Aufräumen kann jeder, nur das Genie überblickt das Chaos!
Metal will never die!
1. Sppro Gamecontest - mein Beitrag

Werbeanzeige