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

24.08.2008, 23:49

Materialfarbe als vertexfarbe benutzen

Hallo

ich habe ein mesh erzeugt.
dieses möchte ich mit einem material belegen, da das (der/die?) mesh komplett weiß ist.

Quellcode

1
2
3
4
material.Diffuse.r = material.Ambient.r = 1.0f;
material.Diffuse.g = material.Ambient.g = 0.5f;
material.Diffuse.b = material.Ambient.b = 0.0f;
material.Diffuse.a = material.Ambient.a = 1.0f;


dann setze ich die farbe des materials

Quellcode

1
2
dev->SetRenderState(D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);
dev->SetRenderState(D3DRS_AMBIENTMATERIALSOURCE, D3DMCS_MATERIAL);


nur: der/die/das mesh ist immer doch weiß. was mache ich da falsch
bzw wie mache ich es richtig :?

beleuchtung habe ich keine und das fvf vom mesh enthält keine
farbinformationen
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

2

25.08.2008, 01:24

Wo setzt du das Material?

3

25.08.2008, 09:12

Zitat von »"defaultplayer^^

Wo setzt du das Material?

Gute Frage!

Hast du die Beleuchtung explizit ausgeschaltet (D3DRS_LIGHTING) ?

Außerdem kann es nicht schaden, den Emissive- und Specular-Anteil des Materials ebenfalls zu initialisieren, um ungewünschte Ergebnisse zu vermeiden.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

4

25.08.2008, 10:23

auch material gesetzt beim rendern?

C-/C++-Quelltext

1
pDevice->SetMaterial(&material);

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

5

25.08.2008, 13:43

Ist es nicht so dass Materialien erst beim Rendern mit Licht und Normalen benutzt werden?

6

25.08.2008, 14:15

Zitat von »"Firefly"«

Ist es nicht so dass Materialien erst beim Rendern mit Licht und Normalen benutzt werden?

Nee, kannste so pauschal nicht sagen. Du legst ja via Renderstates etc. fest, welche - und wie - Farbkomponenten letztendlich verwendet werden.
Licht ist auch nicht zwangläufig notwendig.

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

7

25.08.2008, 14:27

das Material setze ich in jedem renderdurchgang mit SetMaterial
und das Licht ist explizit ausgeschaltet

wie muss man den die renderstates einstellen, damit man auch ohne
licht und normalen das material sieht ?

es soll einfach alles was ich rendere in der materialfarbe erscheinen
(ohne texturen)
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

trash52

Treue Seele

Beiträge: 86

Wohnort: Dresden

  • Private Nachricht senden

8

29.08.2008, 12:23

Also, ich hatte mal das selbe Problem.

Und es ist einfach so, dass wenn man das Lightning ausschaltet,
da bleibt das Modell weiß.


Aber, vielleicht hilft dir der Link:
http://www.directxtutorial.com/Tutorial9/C-Direct3DMeshes/dx9C2.aspx#still

(leider auf englisch)

Dort ist einfach das Material schon in der X-File, das wird extrahiert und dann wird das Modell gerendert.

Gotbread

Alter Hase

  • »Gotbread« ist der Autor dieses Themas

Beiträge: 421

Beruf: Student (Etechnik) + Hiwi

  • Private Nachricht senden

9

29.08.2008, 21:25

thx vielen dank es funktioniert :D

man muss nur das renderstate lightenable anhaben, aber ein licht muss man
garnicht erzeugen

das lasse ich ab sofort auch besser an
Mfg Goti
www.gotbread.bplaced.net
viele tolle spiele kostenlos, viele hardware-basteleien :)

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

Werbeanzeige