Deutsch
Forum

oGL: Gelber Würfel

 

Frank
Abbing
Hi.

Irgendwie bin ich mit den oGL-Farben nicht ganz zufrieden. Wie bekomme ich den Würfel richtig gelb hin, ohne den Beleuchtungs-Effekt abschalten zu müssen?
Wenn eine vorhandene Texture gelb ist, wirds doch auch richtig dargestellt...
KompilierenMarkierenSeparieren
Declare x!

Proc DrawGLScene

    oGL("Clear")
    oGL("PosMode",1)
    oGL("Move",0 , 0 , -7)
    oGL("Rotate",x!+45 , x!+45, x!+45)
    oGL("Color", 1, .9, .2, 1)
    oGL("Cuboid",2,2,2)
    oGL("Show")
    x!=x!+.25

EndProc

Cls
oGL("Init",%hwnd,1 ,1 ,1 ,1)
SetTimer 10

While 1

    waitInput
    Case %key=2:BREAK
    DrawGLScene()

EndWhile

KillTimer
End
 
06.07.2006  
 




Rolf
Koch
Hmm, stimmt, bei mir ist es ein hässliches hellbraun - also eklig.
Leider blick ich immer noch nicht so mit den Farbwerten durch, hab mich mit OGL zuwenig beschäftigt.
Kuck doch mal mit OKREA indem Du einen Würfel erstellst und die Farben dann einfach mal ausprobierst.
 
06.07.2006  
 




Frank
Abbing
Hab die Farben im Testprogramm ausprobiert. Knallig Gelb ist nicht zu machen, ausser ich schalte die Beleuchtung ab. Dann sieht aber die ganze Szene unecht aus...
Alle hellen Farben sind betroffen, dass ist doch nicht richtig so.
 
06.07.2006  
 



Knallgelb gibts in Natura auch nur wenn direkt ein Licht draufscheint. Kann es sein das Du nur mit ambientem Licht probiertest?
 
07.07.2006  
 




Frank
Abbing
Ich teste mit dem Licht, welches XProfan dem User anbietet. Ich hoffe, es kommen noch einige Lichtarten hinzu.
Es ist aber nun so, dass eine gelbe Texture auch als gelb zu sehen ist. Eine gelbe Farbe ohne Texture aber nur als braunes Irgendetwas. Darum denke ich, da passt was nicht.
Mit eigenen Lichtern hatte ich nur kurz experimentiert. Wenn du schon Erfahrungen gesammelt hast, poste doch mal was davon.
 
07.07.2006  
 



Nein ich habe da keinerlei Erfahrung. Mein Hinweis war lediglich hypothetisch.
 
07.07.2006  
 




Frank
Abbing
So gehts. Ich vergaß, für oGL-Color sind auch höhere Werte als 1 erlaubt.
KompilierenMarkierenSeparieren
Declare x!

Proc DrawGLScene

    oGL("Clear")
    oGL("PosMode",1)
    oGL("Move",0 , 0 , -7)
    oGL("Rotate",x!+45 , x!+45, x!+45)
    oGL("Color", 2, 1.8, .4, 1)
    oGL("Cuboid",2,2,2)
    oGL("Show")
    x!=x!+.25

EndProc

Cls
oGL("Init",%hwnd,1 ,1 ,1 ,1)
SetTimer 10

While 1

    waitInput
    Case %key=2:BREAK
    DrawGLScene()

EndWhile

KillTimer
End

Trotzdem eine Bitte an Roland, noch mehr Lichtquellen (von denen stehen 8 zur Verfügung) vorzuinstallieren für oGL-Init.
Werden für oGL-Color grössere Werte als 1 benutzt, leuchten die Objekte nämlich, was sicher nicht immer erwünscht ist.
 
07.07.2006  
 




RGH
Hallo Frank,

XProfan benutzt lediglich die voreingestellte Standard-Lichtquelle. Wenn Du das Licht ändern willst, ist die folgende API-Funktion Dein Freund:

Ogl(glColorMaterial, ~GL_FRONT_AND_BACK, ~GL_EMISSION)

Der erste Parameter kann folgende Werte enthalten: GL_FRONT, GL_BACK, GL_FRONT_AND_BACK (default).

Der zweite Parameter gibt die Art des Lichtes an: GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_AMBIENT_AND_DIFFUSE (default). Wenn das Gelb schön hell sein soll, verwendest Du am Besten GL_EMISSION oder GL_SPECULAR.

Die Programmzeile bringst Du sinnvollerweise gleich hinter dem oGL(Init,...) unter.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
07.07.2006  
 




Frank
Abbing
Danke Roland!

Ups, da hab ich wohl um ein paar Ecken zu kompliziert gedacht. Meine API-Versuche waren etwas ausschweifender...

Dein Vorschlag mittels GL_EMISSION oder GL_SPECULAR bringt aber in meinem Fall nichts ein. Zwar sind die Farben jetzt schön hell, dafür gibts aber keine Schatteneffekte mehr. Wie auch immer, vorerst habe ich die Lösung für mich gefunden (s. letztes Posting)
 
07.07.2006  
 




Uwe
''Pascal''
Niemeier
Hallo Leute!

Kleine Ergänzung von mir:
Anscheinend gelten für Primitives (einfache Flächen oder Objekte, die aus solchen zusammengesetzt sind) andere Grundeinstellungen für Farben und Refexionen als für komplexe Objekte (Kugeln, Röhren, Disks usw).
Ob das allgemein so ist oder nur bei RGH-ogL hab ich noch nicht geprüft.

Hier der Beweis:
KompilierenMarkierenSeparieren
!
cls
ogl("init",%hwnd,0,0,0,1)
ogl("clear")
ogl("move", 1,0,-5)
ogl("quad",1,1)
ogl("move",-2,0,0)
ogl("disk",0,0.5,4)
ogl("show")
waitkey

BTW: Das gilt auch bei Verwendung von Texturen, darum verwende ich bei leuchtenden Partikeln Disks als Träger und keine Quads.

Workaround für Frank:
KompilierenMarkierenSeparieren
!

proc glMaterial---------------------------------------------------------------

    parameters a&,b&,a!,b!,c!,d!
    declare a#
    dim a#,16
    clear a#
    long a#,0=single(a!)
    long a#,4=single(b!)
    long a#,8=single(c!)
    long a#,12=single(d!)
    ogl("glMaterialfv",a&,b&,a#)
    dispose a#
    endproc-----------------------------------------------------------------------
    Declare X!

    Proc Drawglscene

        Ogl("Clear")
        Ogl("PosMode",1)
        Ogl("Move",0 , 0 , -7)
        Ogl("Rotate",X!+45 , X!+45, X!+45)
        --Halbe Werte von Color; aber am Besten ausprobieren!
        glMaterial(~GL_FRONT , ~GL_SPECULAR , 0.50 , 0.45 , 0.10 , 0)
        --Weitere mögliche Parameter siehe MSDM
        Ogl("Color", 1, .9, .2, 1)
        Ogl("Cuboid",2,2,2)
        Ogl("Show")
        X!=X!+.25

    Endproc

    Cls
    Ogl("Init",%Hwnd,1 ,1 ,1 ,1)
    Settimer 10

    While 1

        Waitinput
        Case %Key=2:Break
        Drawglscene()

    Endwhile

    Killtimer
    End

Ermittelt durch Try & Error; die genauen Zusammenhänge muss ich auch erst noch aufdröseln

HTH
Pascal
 
07.07.2006  
 




Frank
Abbing
Prima, Pascal. Funktioniert genauso gut .
Übrigens wird eine Texture heller, wenn zusätzlich noch eine helle Farbe (mit oGL-Color) gesetzt wird. Irgendwie beeinflussen sich die verschiedenen Elemente mehr als vermutet.
 
07.07.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

864 Betrachtungen

Unbenanntvor 0 min.
H.Brill08.08.2021
Sven Bader06.08.2021
Peter Max Müller16.10.2017
Donnie20.03.2013
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie