GLBasic forum

Other languages => GLBasic - de => Topic started by: WPShadow on 2005-Sep-28

Title: Lichteffekt
Post by: WPShadow on 2005-Sep-28
Hi!

Diesmal habe ich eine Frage, die sich vermutlich simpel beantworten läßt:

Ich habe meine Erdkugel erzeugt und zum rotieren gebracht und beobachtet, daß sich bei der Rotation die Lichtverhältnisse verändert haben. Insgesamt heißt das, daß auf der einen Seite der Kugel das Licht stärker war und auf der anderen schwächer bzw. die eine Seite heller wirkt und die andere dunkler, obwohl sich weder Kamera noch Licht bewegen und nur das Objekt um seine eigene Achse rotieren.

Ist das normal und kann man das Licht zumindest so einstellen, daß man eine kontinuierliche Helligkeit auf dem ganzen Objekt hat???

GLG

Willi
Title: Lichteffekt
Post by: WPShadow on 2005-Sep-28
PS.: Kann es vielleicht am X_AMBIENT_LT liegen oder doch am X_SPOT_LT???
Title: Lichteffekt
Post by: WPShadow on 2005-Sep-28
Anbei noch eine Frage, um nich noch einen neuen Menüpunkt aufzuwerfen:

Wie kann ich, wenn ich in X_Make2D einen Mauszeiger generiert habe im X_MAKE3D Modus etwas anklicken, um so eine Reaktion zu erzielen? Ist das überhaupt möglich???
Title: Lichteffekt
Post by: Kitty Hello on 2005-Sep-29
ufz! Da mit dem Licht *könnte* ein Fehler 'drin sein - ich hab sowas auch schonmal festgestellt, meine ich. Im Debug-Modus bekommt man das Licht als Kugel + Strahl angezeigt - kann man mal testen.
Im 3D was anlicken macht man eher so:
Code (glbasic) Select
X_MAKE3D ...
X_SCREEN2WORLD mx, 0, my, wx, wy, wz
X_SCREEN2WORLD mx, 1, my, wx2, wy2, wz2

// Jetzt hast Du im 3D die Linie von wx,wy,wz nach wx2,wy2,wz2, die unter dem Mauspfeil ist. Damit kann man z.B. mit X_COLLISIONRAY arbeiten...
X_MAKE2D
Title: Lichteffekt
Post by: WPShadow on 2005-Sep-29
Habe das "Problem" mit dem Licht gefunden!

Hier das Programm:


X_LOADOBJ "earth.ddd", 1

LOADSPRITE "planet.bmp", 1

LOADSPRITE "mausx.bmp", 2

LET camx = -200

WHILE TRUE

X_MAKE3D 1, 2000, 45

  X_AMBIENT_LT 0, RGB(255,255,255)

  X_SPOT_LT -2, RGB(255,0,0), 0, 0, 50, 0, 0, 0, 20

    X_CAMERA camx, 0, 10, 0, 0, 0

  X_DRAWAXES 0, 0, -100

  X_SETTEXTURE 1, 0

    X_MIPMAPPING TRUE



IF b1 = 1 THEN END

//Kamerabewegungsbegrenzer


IF camx > -150 THEN camx = -150
IF camx < -350 THEN camx = -350


speed = GETTIMER() / 20

IF mx <= 100 THEN phi = phi - speed*0.5
IF mx >= 700 THEN phi = phi + speed*0.5

IF my <= 100 THEN camx = camx + speed*1
IF my >= 500 THEN camx = camx - speed*1



//360° Überschreitungsbegrenzer
IF phi = 360 THEN phi = 0
IF phi < 0 THEN phi = 360

  //X_SCALING 3, 3, 3
  X_ROTATION phi, 0, 1, 0

//FOG RGB(255,255,255), FALSE, 1/2, 0

  X_DRAWOBJ 1, 0

X_MAKE2D

  MOUSESTATE mx, my, b1, b2

  FILLRECT 700, 50, 780, 580, RGB (0,64,128)

  SPRITE 2, mx, my

  SHOWSCREEN

WEND

Wenn man das X_AMBIENT_LT auf RGB (128,128,128) setzt, scheint das Programm den hinteren, dunklen Teil nach vorne zu "projezieren". Wenn es sich also dreht, erscheint erst der helle Bereich der Kugel und dann langsam der Dunkle!

Hoffe, ich kann damit etwas helfen!!!
Title: Lichteffekt
Post by: Kitty Hello on 2005-Nov-03
Die Lichter waren bisserl.. ähh... :/ Im neuen Update passt alles.
Title: Lichteffekt
Post by: WPShadow on 2005-Nov-06
Das Licht sieht super aus! Danke!!!!