Hellooo,
ich hab da mal so eine frage und zwar will ich dynamische schatten erstellen, von Modellen und von Formen. Da ich mich
kaum mit 3D befasst habe, fehlt mir das nötige Verständnis dafür
Ich habe ein Beispiel gefunden, aber das hat mir nicht gefallen, weil der schatten komplett schwarz war
und nicht halb transparent.
Code:
Spoiler anzeigen
Alles anzeigen
Dann habe ich gelesen das man mit einer DLL die models laden sollte und dann kann man auch den alpha
Wert festlegen. Da ich das alles aber ohne DLL's schaffen will, (was früher oder später nicht möglich sein wird, aber ich will nicht beim ersten
Problem dran scheitern) frag ich einfach mal hier ob jemand eine Idee/Lösung hat
Es soll noch einen Code geben (schon vergessen) aber der Klappte nicht, weil das Modell Farbwerte gespeichert hat.
EDIT: was ich auch gerne wissen würde, wäre wie man d3d_model_draw( argument0, 0, 0, 0, argument4 ) diesen code so umschreibt, dass
das geladene Modell durchsichtig sein kann.
ich hab da mal so eine frage und zwar will ich dynamische schatten erstellen, von Modellen und von Formen. Da ich mich
kaum mit 3D befasst habe, fehlt mir das nötige Verständnis dafür

Ich habe ein Beispiel gefunden, aber das hat mir nicht gefallen, weil der schatten komplett schwarz war
und nicht halb transparent.
Code:
GML-Quellcode
- var xo, yo, a, d;
- xo = (argument6-argument1)/-20;
- yo = (argument7-argument2)/-20;
- a = sqrt(xo*xo+yo*yo);
- d3d_transform_stack_push()
- d3d_set_lighting( true );
- d3d_light_define_direction( 30, xo, yo, -.2, argument8 )
- d3d_light_define_direction( 31, -xo, -yo, .2, c_dkgray );
- d3d_light_enable( 30, 1 ); d3d_light_enable( 31, 1 )
- d3d_transform_set_identity ();
- d3d_transform_add_rotation_z( argument5 )
- d3d_transform_add_translation( argument1, argument2, argument3 )
- d3d_model_draw( argument0, 0, 0, 0, argument4 )
- d3d_transform_set_identity ();
- d3d_set_lighting( false )
- d3d_transform_add_rotation_z( argument5 )
- if (abs(a) > 0.0001) {
- d = radtodeg(arctan2(yo,xo))
- d3d_transform_add_rotation_z (d);
- d3d_transform_add_scaling(1/1.73205081,1,-a/2);
- d3d_transform_add_rotation_y (60);
- d3d_transform_add_scaling(3,1,-1);
- d3d_transform_add_rotation_y(30);
- d3d_transform_add_scaling(1,1,2/1.73205081/a);
- d3d_transform_add_rotation_z(-d);
- d3d_transform_add_scaling(1,1,0) }
- d3d_set_fog( 1, c_black, 0, 0 )
- d3d_transform_add_translation( argument1, argument2, argument3 + .1 )
- d3d_model_draw( argument0, 0, 0, 0, argument4 )
- d3d_set_fog( 0, c_black, 0, 0 )
- d3d_transform_set_identity()
- d3d_transform_stack_pop()
Dann habe ich gelesen das man mit einer DLL die models laden sollte und dann kann man auch den alpha
Wert festlegen. Da ich das alles aber ohne DLL's schaffen will, (was früher oder später nicht möglich sein wird, aber ich will nicht beim ersten
Problem dran scheitern) frag ich einfach mal hier ob jemand eine Idee/Lösung hat

Es soll noch einen Code geben (schon vergessen) aber der Klappte nicht, weil das Modell Farbwerte gespeichert hat.
EDIT: was ich auch gerne wissen würde, wäre wie man d3d_model_draw( argument0, 0, 0, 0, argument4 ) diesen code so umschreibt, dass
das geladene Modell durchsichtig sein kann.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nico001 ()