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

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

1

06.01.2009, 18:06

D3DXComputeNormalMap bedeutung des Channels

Hallo,

ich hab mal ne Frage zu dieser funktion.

in einigen beispielen sieht man so einen aufruf

C-/C++-Quelltext

1
D3DXComputeNormalMap(bumpmap, heightmap, 0, 0, D3DX_CHANNEL_RED, 1.f);


bedeutet das D3DX_CHANNEL_RED nicht, das nur der rotanteil
der textur zur heightmap verbacken wird?

wenn ich eine graustufentextur umwandeln will, muss ich dann nicht
D3DX_CHANNEL_LUMINANCE nehmen?

Zitat von »"MSDN"«


D3DX_CHANNEL_LUMINANCE:
Indicates the luminances of the red, green, and blue channels should be used



edit:


jetzt schlägt das teil auch noch fehl und zwar mit D3DERR_INVALIDCALL :(

ganzer code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hr = D3DXCreateTextureFromFile(dev, "bumpmap.bmp", &bumpmap);
if (hr != S_OK)
    return false;

D3DSURFACE_DESC desc;
bumpmap->GetLevelDesc(0, &desc);

IDirect3DTexture9 *temptex;
hr = dev->CreateTexture(desc.Width, desc.Height, 0, 0, D3DFMT_R8G8B8, D3DPOOL_MANAGED, &temptex, 0);
if (hr != S_OK)
    return false;

hr = D3DXComputeNormalMap(temptex, bumpmap, 0, 0, D3DX_CHANNEL_LUMINANCE, 1.f);
if (hr != S_OK)
    return false;

bumpmap = temptex;
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

06.01.2009, 18:31

Steht doch eh alles in der MSDN:

Zitat von »"MSDN"«


Channel
[in] One D3DX_CHANNEL flag specifying the source of height information.


Das Flag sagt dir welcher Kanal der Heightmap als Höhenwert genommen werden soll (oder eben ob die Helligkeit genommen werden soll)...

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

3

06.01.2009, 18:38

das hab ich auch gelesen aber fast alle beispiele im netz ham nur
die rote farbe genommen. ich dachte mir halt dass die bumpmap doch
nicht rot-schwarz sein kann?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

06.01.2009, 18:47

wenn es sowieso nur grautöne sind isses wurscht welchen kanal man nimmt weil dann alle die gleichen werte haben...

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

5

06.01.2009, 18:55

ok das leuchtet ein.

das erklärt aber nochnicht warum die funktion fehlschlägt ?
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

"Es ist nicht undicht, es läuft über" - Homer Simpson

Werbeanzeige