Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 14.08.2004, 18:27 Titel: Lichtquellen |
|
|
Wie baut man mehrere Lichtquellen in eine 3D welt ein? Ich weiß nur, wie man eine einbaut. _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 14.08.2004, 18:56 Titel: |
|
|
Wie baust du denn eine ein?!? |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 14.08.2004, 21:17 Titel: |
|
|
Ich meine diese Programmzeilen. Die dürften dir bekannt vorkommen:
Code: |
ZeroMemory(&m_Light,sizeof(D3DLIGHT9));
// bei der Lichtquelle soll es sich um eine
// Punktlichtquelle handeln
m_Light.Type = D3DLIGHT_POINT;
// die Lichtfarbe wird auf Weiß gesetzt
m_Light.Diffuse.r = 1.0f;
m_Light.Diffuse.g = 1.0f;
m_Light.Diffuse.b = 1.0f;
// das Licht soll eine Reichweite von 1000 haben
m_Light.Range = 1000.0f;
// das Licht wird an der gleichen Stelle positio-
// niert, an der sich auch unsere Kamera befindet
m_Light.Position = D3DXVECTOR3(0.0f, 10.0f, 0.0f);
// das Element Attenuation0 bestimmt, wie stark die
// Lichtstärke mit der Entfernung abfällt
// 1.0 bedeutet dabei keinen Abfall der Lichtstärke
m_Light.Attenuation0 = 1.0f;
// das definierte Licht bekommt die Nummer 0
Direct3D.GetDevice()->SetLight(0,&m_Light);
// Lichtquelle anschalten
Direct3D.GetDevice()->LightEnable(0,TRUE);
// Licht einschalten
Direct3D.GetDevice()->SetRenderState(D3DRS_LIGHTING,TRUE);
// Ambientes Licht aktivieren
Direct3D.GetDevice()->SetRenderState(D3DRS_AMBIENT,0x00F0F0F0);
|
_________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 14.08.2004, 21:38 Titel: |
|
|
Ja, du musst das zweite Light halt eine andere Nummer zuweisen!
Also bei
Direct3D.GetDevice()->SetLight(0,&m_Light);
Direct3D.GetDevice()->LightEnable(0,TRUE);
statt die 0 halt eine 1. Dürfte eigentlich klappen(hab nämlich die DX Parameter ned mehr ganz im Kopf!). |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 15.08.2004, 00:20 Titel: |
|
|
Tatsächlich. Nen Auge muss man haben. _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
Fallen JLI MVP
Alter: 40 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 15.08.2004, 17:00 Titel: |
|
|
Ne Gute Idee ist es die Lichter in eine Liste oder ähnliches abzulegen und nur die Lichter zu aktivieren welche Objekte im Sichtbereich beeinflussen, das spart Performance und is auch gut wenn man mit Shadern arbeiten möchte. _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
|
LeeDiGer Super JLI'ler
Anmeldedatum: 31.08.2003 Beiträge: 366 Wohnort: Duisburg Medaillen: Keine
|
Verfasst am: 06.09.2004, 14:35 Titel: |
|
|
In dem 2. JLI buch gabs nur ein Beispiel zu Punktlichtern. Wie sieht denn ein Codebeispiel für Spotlight und direktionales Licht aus? _________________ Kein Rückzug! Kein Aufgeben! |
|
Nach oben |
|
|
|