X_SPOT_LT verbesserungsvorschlag!

Previous topic - Next topic

Schranz0r

Hi Gernot

Bei dem Light fehlt mir irgendwie noch ein Parameter und zwar die Range!

Machbar oder nicht machbar?
Bzw. hast du nen Trick auf lager um das zu setzen? ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Das geht so nicht. Hmm... Evtl. das Licht ausschalten, wenn ein Objekt zu weit weg ist?

Schranz0r

Also in manchen Programmiersprachen geht das aber !?
Wie machen die das dann, ist das ein DX Feature?



EDIT:

GL_CONSTANT_ATTENUATION & GL_LINEAR_ATTENUATION & GL_QUADRATIC_ATTENUATION

params enthält einen ganzzahligen oder Fließkommawert, welcher einen der drei Abschwächungsfaktoren repäsentiert.
Ganzzahlige Werte und Fließkommazahlen werden direkt übertragen. Es werden nur positive Werte akzeptiert.
Wenn die Lichtquelle ungerichtet ist, nimmt die Intensität der selbigen mit dem Reziprok (1/x) der Summe von:
Konstanter Anteil +
Linearer Anteil * Entfernung zwischen Licht und zu beleuchtenden Vertex +
Quadratischer Anteil * Quadrat der Entfernung
ab.
Die Vorgabewerte für die Abschwächungsfaktoren sind (1,0,0) mit der Folge, dass keine Abschwächung auftritt.


Quelle: http://wiki.delphigl.com/index.php/glLight


Das Lichtdämfungszeug könnte doch helfen oder nicht?
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Ach so, ja das geht schon. Ich dachte an oder aus - quasi echt begrenzt.
Ich schau mal, was sich machen lässt.

Schranz0r

Das wär Super!
Würde auch sofort eine Demo machen! ;)

Mit einer Lampe oder so :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

:D
Code (glbasic) Select
glLightAttenuation(0,  1,.2,.08)

// Die Main function zumachen - falls nich schon eine Function d'rüber kommt, oder
// das in einer anderen Datei ist (dazu rate ich)
FUNCTION end_main_function:
ENDFUNCTION

INLINE
}; //namespace zumachen
        // Funktion definieren
extern "C" void __stdcall glLightf(int, int, float);
        // Globale Konstanten
#define GL_LIGHT0 0x4000
#define GL_CONSTANT_ATTENUATION 0x1207
#define GL_LINEAR_ATTENUATION             0x1208
#define GL_QUADRATIC_ATTENUATION          0x1209
        // Namespace zumachen
namespace __GLBASIC__ {
ENDINLINE



FUNCTION glLightAttenuation: iLight, constant, linear, quadratic
INLINE
    glLightf(GL_LIGHT0+iLight, GL_CONSTANT_ATTENUATION,  constant);
    glLightf(GL_LIGHT0+iLight, GL_LINEAR_ATTENUATION, linear);
    glLightf(GL_LIGHT0+iLight, GL_QUADRATIC_ATTENUATION, quadratic);
ENDINLINE
ENDFUNCTION

Schranz0r

hey geht super :D mann kanns Licht nun kleiner machen :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard