Licht auf Mesh

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Marek

Betreff: Licht auf Mesh

BeitragSa, Feb 10, 2007 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich will auf folgendem Bild:
http://wallpapers.interfree.it...1.1280.jpg
ein Mesh "integrieren" (ein Todesstern xD). Das klappt auch soweit ganz gut, nur das ich bei der Farbe des Lichtes, welche aus der Mitte des Bildes "kommen" sollte, nicht weiterweiß.
Wenn ich eine blaue Farbe (z.B. 0,0,255), ist sie zu dunkel, zu grell oder hat schlichtweg den falschen Farbton.
Gebe ich ein bisschen Grün dazu(z.B. 0,100,255), sieht das schon ganz gut aus, nur ist es am Rand dann immer zu grün und passt ebenfals nicht mehr^^ ausserdem ist auch hier der Rand zu dunkel, wenn man es mit den Planeten vergleicht.
Auch so etwas wie 50,100,255 geht schief. Ich dachte dadurch würde es heller werden, aber das ist nicht der Fall, es wird zu rot und am Rand einfach nur noch weiß^^
Weiß echt nichmehr weiter, hoffe das wer ne Idee hat, wie man das lösen kann^^
mfg Marek

FireballFlame

BeitragSa, Feb 10, 2007 22:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem Rand wundert mich etwas... sicher, dass AmbientLight auf 0,0,0 ist?
Dann hätte ich dir zu einer Lichtfarbe von vielleicht 100,150,200 geraten...
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit

NightPhoenix

BeitragSa, Feb 10, 2007 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
poste doch mal bitte deinen code!
da gibt es bestimmt nen kleinen fehler ^^
 

Marek

BeitragSo, Feb 11, 2007 1:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, @FireballFlame: das mit dem Ambientlight hab ich auch schon probiert^^
Und so siehts aus, wenn man die Lightcolor auf 100,150,200 setzt:
http://bildrian.de/n/b/b89ae4fb4a7bd1f8.bmp

Das Mesh im Code kann durch eine sphere ersetzt werde, die green.bmp is einfach ein grüner Punkt (vür den Hintergrund^^)

Der Code hier war nur vür Testzweke, um die richtige Farbe rauszufinden, light is das eigentliche Licht, light2 ist ein Gegenlicht (entgegengesetzte richtung/ Abstand zum Mesh) und light3 war nur ein Versuch, als ich schon halb aufgegeben hatte^^
gtex ist das Bild und die Textur des Todessterns gibs hier:
http://bildrian.de/n/b/cb41a721a4e9b4ea.jpg


Code: [AUSKLAPPEN]

Graphics3D 1280,1024
SetBuffer BackBuffer()

camera=CreateCamera()
PositionEntity camera,0,1,0
AmbientLight 0,20,200
light=CreateLight(2)
light2=CreateLight(1)
light3=CreateLight(1)
;RotateEntity light,225,-50,0
;RotateEntity light2,225,-50,0
LightColor light,255,255,255
LightColor light2,0,20,200
;LightColor light3,255,255,255


tex1=LoadTexture("ds_body.jpg")

ds1=LoadMesh("ds.3ds")
plane=CreatePlane()
gtex=LoadTexture("green.bmp")

ScaleTexture tex1,0.2,0.2

EntityTexture ds1,tex1
EntityTexture plane,gtex

z#=MeshDepth(ds1)*2
PositionEntity ds1,0,0,z#





While Not KeyDown( 1 )
 RenderWorld()
 If KeyDown(203) Then
  x=x+1
 ElseIf KeyDown(205)
  x=x-1
 EndIf
 RotateEntity ds1,270,x,0

 If KeyDown(200) Then
  z#=z#+0.1
 ElseIf KeyDown(208) Then
  z#=z#-0.1
 EndIf
 PositionEntity ds1,(MouseX()/5)-65,(-MouseY()/5)+50,z#
 PositionEntity plane,0,0,z#+50
 RotateEntity plane,0,90,90
 If KeyDown(31) Then
 SaveBuffer(BackBuffer(),"final.bmp")
 End
 EndIf
 PositionEntity light,0,0,200
 PositionEntity light3,0,0,200
 PositionEntity light2,((MouseX()/5)-65)-(0-((MouseX()/5)-65)),((MouseY()/5)+50)-(0-((MouseY()/5)+50)),z#-(200-z#)
 If KeyDown(78) Then
  If KeyDown(19) Then
   r=r+1
  ElseIf KeyDown(34) Then
   g=g+1
  ElseIf KeyDown(48) Then
   b=b+1
  EndIf
 ElseIf KeyDown(74) Then
  If KeyDown(19) Then
   r=r-1
  ElseIf KeyDown(34) Then
   g=g-1
  ElseIf KeyDown(48) Then
   b=b-1
  EndIf
 EndIf
 LightColor light,r,g,b
 Text 1,1,r+","+g+","+b
 Flip
Wend
SaveBuffer(BackBuffer(),"final.bmp")
f=LoadImage("final.bmp")
x=LoadImage("gtex.bmp")
DrawBlock f,0,0
GetColor 1,1
MaskImage f,ColorRed(),ColorGreen(),ColorBlue()
DrawBlock x,0,0
DrawImage f,0,0
FreeImage f
Flip
WaitKey
SaveBuffer(BackBuffer(),"final.bmp")

End

skey-z

BeitragSo, Feb 11, 2007 3:09
Antworten mit Zitat
Benutzer-Profile anzeigen
render es doch ganz normal, mit weißem Licht und füge das Meshbild in ein Bildbearbeitungsprogramm ein, da kannst du dann einfach diese Ebene anpassen, so dass es zum Bild im Hintergrund passt.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

NightPhoenix

BeitragSo, Feb 11, 2007 9:25
Antworten mit Zitat
Benutzer-Profile anzeigen
was fummelst du da auch mit 3 verschiedenen Lichtern rum? Shocked
warte mal kurz... ich mach mal einen funktionstüchtigen code der szene... 10 minuten (gibt dann *edit*)

MfG.


*edit*
user posted image
ich hoffe so sollte es bei dir mal aussehen

Die beiden Dateien brauchst du dazu
http://87.230.14.1/upload/file.php?id=1139

http://marinext.ma.funpic.de/i...destex.png


ich konnte deine nicht verwenden, da ich nur die demo habe und die will kein .jpg ^^

Wenn du den Rest des Todesterns heller machen willst solltest du die ambientlight werte von 10 auf 50 setzen... aber die jetzigen werte wirken realer... die beiden Planeten sind auf ihrer Schattenseite schließlich auch schwarz und nicht wie auf deinem Bild blau leuchtend Wink


*edit*
ups hab da ne datei vergessen... den ersten link nochmal downloaden

MfG.

FireballFlame

BeitragSo, Feb 11, 2007 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
[quote="Marek"]ok, @FireballFlame: das mit dem Ambientlight hab ich auch schon probiert^^
Und so siehts aus, wenn man die Lightcolor auf 100,150,200 setzt:
http://bildrian.de/n/b/b89ae4fb4a7bd1f8.bmp

Öhmm... wenn du das mal als .jpg hochladen würdest, könnte ichs mir auch ansehen ^^
Als .bmp ist das nämlich 3,75MB groß und das dauert mit meinem 28k-Modem eine halbe Stunde Rolling Eyes
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit
 

Marek

BeitragSo, Feb 11, 2007 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
@FireballFlame:
user posted image

@NightPhoenix:
Sieht schon ganz gut aus, passt aber immer noch net 100%ig^^ Ich find des is immer noch etwas zu grün und zu dunkel^^
achja, ich hab mit 3 Lichtern gearbeitet, weil ichs mit einem net hinbekommen hab^^
Aber mal ehrlich, die Planeten sind doch auf der Schattenseite net schwarz? Die sind doch dunkelblau^^
Und nochwas, habe auch die BB3D Demo-Version, bei mir lädt der auch .jpg^^
mfg Marek

NightPhoenix

BeitragSo, Feb 11, 2007 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
du willst weiße ränder? so als ob das grell blau leuchtet? sowas wie eine korona um den stern an einer seite...
das geht nicht... dafür brauchste schon einen richtigen renderer und diverse shader... das ist halt die grenze nomaler Grafik... man kann nicht einfach so ne Textur an einer bstimmten Stelle durch DirectX7 Licht heller machen, ohne die Umgebung aufzuhellen....
dafür bauchste was anderes....
wenns dir um solche bilder geht wie das grundbild... die wurden nicht mit einem renderer gemacht...
dafür gibt es spezielle Malsoftware, die auch ziemlich geile Filter drauf hat und dadurch solche Bilder zustande kommen...
mehr weiß ich aber nicht drüber.
MfG.
 

Dreamora

BeitragSo, Feb 11, 2007 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür braucht man keine Shader.
Aber wie richtig erkannt wurde, eine Korona Smile

Einfach eine zweite Kugel drumherum, die leicht grösser ist und die man mit flipMesh nach innen gedreht hat. Die sollte bei dem Effekt eigentlich hilfreich sein. Eventuell noch eine Textur drauf mit relativ hohem alpha oder die korona kugel selbst relativ transparent machen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group