Licht Fehler

Übersicht BlitzBasic Blitz3D

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

NightPhoenix

BeitragDo, Dez 28, 2006 20:28
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab das echt nur ganz normal modelliert, da ist nix aufgesetzt oder sowas.
in wings hab ich jetz nur "Show Normals" gefunden und irgend so eine Funktion namens Intersect, wo man wenn man vertices auswählt pfeile angezeigt bekommt, 100pro die Normalen.
aaaaber: ich kann da nur auf "cancel" drücken, hab schon alles mögliche vesucht damit was zu bewegen.
Aber das fatale ist ja, dass die Normalen in Wings völlig in Ordnung sind! so sieht es jedenfalls aus!
seht:
http://marinext.ma.funpic.de/i...ormals.JPG
sehr kurios... im wings eigenen renderer werden die Beleuchungen auch falsch angezeigt. Confused

Komischerweise funktioniert dann aber BIG BUG's Function, obwohl die Nomalen ja optisch in Odnung sind...
>.< was is denn hier los?

MfG.
 

Dreamora

BeitragDo, Dez 28, 2006 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Triangulier dein Model Mal.

In 3D werden eigentlich nur Triangles unterstützt, auf dem Pic sind jedoch Quad Normals zu sehen. Vielleicht entsteht der Fehler erst beim Triangulieren. (oder worst case: beim converting in ein Format *best case B3D* das verträglicher ist als 3DS)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

NightPhoenix

BeitragDo, Dez 28, 2006 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
nach dem triangulieren ist immernoch alles normal

http://marinext.ma.funpic.de/i...rmals2.PNG

ich bin mir nicht sicher, aber ich glaube nicht dass das beim exportieren passiert, denn der hauseigene Renderer von Wings (OpenGL basis) zeigt noch vor dem exportieren (.wings file) die fehlerhaften stellen genauso wie blitz3d.

Confused muss mir jetzt wohl doch 3DSmax oder cinema4d kaufen Crying or Very sad

es muss doch irgendwie gehen, aber nicht mit wings, anscheinend merkt es ja nicht selbst, dass paar normale verkehrt sind, aber zeigt sie richtig an...

vielleicht gibts ja doch irgendwo ein tool, oder vielleicht verfeinert BigBug den Code von sich noch bissl, hat ja schon recht gut geklappt, bis auf ein paar kleinigkeiten! Wink
mfg.


edit:
Hab Wings mal genauer unter die Lupe genommen, selbst die Grundobjekte (würfel) liefern falsche Normalen, aber nur nach dem exportieren und render in wings.

Black Spider

BeitragFr, Dez 29, 2006 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
also das mit Triangulieren bringt rein gar nichts,
bei Wings werden Polygone genutzt, allerdings einfach nur flächen angezeigt.
Und 3DsMax oder C4D brauchste dir auch nicht zu kaufen,

probier mal folgendes:
Ich denke mal Cel Shading sagt dir was, dabei werden die Helligkeitsstufen in einer Textur gespeichert.
Diese Textur besteht aus 2 Pixeln: dunkelgrau und Weiss.
Es wird über das Skalarprodukt des Normalvektors des Polygons und des Vektors vom Polygon zum licht berechnet, ob der Vertex die Textur Koordinate des grauen oder des weissen pixels hat,
so entsteht dieser "harte" beleuchtungseffekt beim Cel Shading (es ist ja immer eine art Kante da).

Und jetzt kommt der für dich interessante Teil:
nimm mal statt der grau/weiss textur eine grau/weiss textur mit sehr vielen übergängen so wie diese hier:
user posted image

und verwende einen normalen Cel Shading code.
Da vertex hier schon einen veröffentlicht hat brauchste auch keinen mehr zu coden:
https://www.blitzforum.de/foru...oonshading


die ganze beleuchtung geht dabei über die Textur, somit sieht man die Kantigen übergänge an den Polygonen nicht.
Kann dir nicht versprechen dass es genau das ist was du suchst, aber einen versuch wär´s wert.
Vergiss nicht das objekt EntityFX 1 zu stellen!
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif

NightPhoenix

BeitragFr, Dez 29, 2006 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
danke für deine hilfe blackspider, aber da diese funktion auf den normalen selbst basiert funktioniert das duch die vermurksten normalen leider nicht... mit der erweiterten Palette hat das den selben Effekt wie das Licht, nur mit komischem flackern.
Trotzdem danke für deine Mühe BlackSpider Wink

Man müsste doch theoretisch ein kleines Programm für Blitz proggen können beim dem man die einzelnen Normalen irgendwie durch ein leuchteffekt oder sowas zu sehen bekommt und mit den pfeiltasten "durchscrollen" kann. Dann wählt man seine vermurkste Normale aus und geht auf ne Taste die diese dann begradigt...

Das wäre doch mal ne Weltpremiere! Hab lange nach einem Programm gesucht, dass diese Funktion beherrscht, doch keines gefunden.
Toller Projektvorschlag, aber leider hatte ich noch keine Vektorenberechnung in der Schule (Skalarprodukt, Punktprodukt, usw. keine ahnung was das ist) Naja BigBug kam dem Ziel schon sehr sehr nahe, nur 3 kleinere stellen sind noch falsch, sonst waren es mehr als die hälfte! Smile

kann man eigentlich auch einzelne normalen mithilfe von irgendwelchen indexnummern filtern/auswählen? theoretisch hat ja jedes etwas auf nem objekt ne zuordnung, also ne nummer, dann also auch die normalen.

mfg.

StepTiger

BeitragFr, Dez 29, 2006 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
so ein Programm kann man sich recht einfach selbst schreiben ^^

Dass es sowas dann auch speichert, das ist eine andere Sache ^^

*edit*

Hab mal schnell was gemacht:
Code: [AUSKLAPPEN]
tmesh$=Input("Mesh?    ")

Graphics3D 800,600,32,2
SetBuffer BackBuffer()

mesh=LoadMesh(tmesh$)
If mesh=0 Then RuntimeError "Mesh existiert nicht!"
WireFrame True

cam=CreateCamera()
If cam=0 Then RuntimeError "Konnte Szene nicht erstellen!"
CameraClsColor cam,128,164,255
MoveEntity cam,0,0,-MeshDepth(mesh)

Type VertexNorm
   
   Field mesh
   
End Type

MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
FlushMouse

While Not KeyHit(1)
   
   TurnEntity cam,MouseYSpeed(),-MouseXSpeed(),0
   RotateEntity cam,EntityPitch(cam),EntityYaw(cam),0
   
   MoveEntity cam,KeyDown(205)-KeyDown(203),0,KeyDown(200)-KeyDown(208)
   
   UpdateWorld
   RenderWorld
   
   CreateVertexNormals(mesh,cam)

   Flip
   
Wend

End

Function CreateVertexNormals(mesh,cam)
   
   LockBuffer
   
   surfs=CountSurfaces(mesh)
   
   For surf=1 To surfs
      
      sur=GetSurface(mesh,surf)
      
      For verts=0 To CountVertices(sur)-1
         
         ;x.VertexNorm=New VertexNorm
         ;x\Mesh=CreateCube()
         ;EntityColor x\Mesh,255,0,255
         ;EntityFX x\mesh,1
         
         vx#=VertexX#(sur,verts)
         vy#=VertexY#(sur,verts)
         vz#=VertexZ#(sur,verts)
         
         vnx#=VertexNX#(sur,verts)
         vny#=VertexNY#(sur,verts)
         vnz#=VertexNZ#(sur,verts)
         
         tx#=vx#+vnx#
         ty#=vy#+vny#
         tz#=vz#+vnz#
         
         TFormPoint tx#,ty#,tz#,mesh,0
         
         tfx#=TFormedX#()
         tfy#=TFormedY#()
         tfz#=TFormedZ#()
         
         CameraProject cam,tfx#,tfy#,tfz#
         
         cx=ProjectedX()
         cy=ProjectedY()
         
         tcol=255 Shl 16 + 255 Shl 8
         If cx>0 And cy>0 And cx<GraphicsWidth() And cy<GraphicsHeight() Then WritePixelFast cx,cy,tcol
         
         ;PositionEntity x\mesh,TFormedX#(),TFormedY#(),TFormedZ#()
         
      Next
      
   Next
   
   UnlockBuffer
   
End Function

Function FreeVertexNormals()
   
   For x.VertexNorm=Each VertexNorm
      
      FreeEntity x\mesh
      
   Next
   
End Function


Entschuldige die sinnlose Funktion unten, da ich es erst für klug hielt, 3D Objekte zu nutzen, was bei vielen Objekten aber schnell mal ein MAV gab.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
  • Zuletzt bearbeitet von StepTiger am Fr, Dez 29, 2006 15:33, insgesamt einmal bearbeitet

NightPhoenix

BeitragFr, Dez 29, 2006 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kanns eben nicht Razz hatte solche berechnungen noch nicht in der schule

abspeichern... stimmt, aber man könne das ja auch theoretisch direkt ins spiel einbauen, somit werden die objekte erst garnicht gespeichert, sondern besser eine textdatei die den programmcode enthält der die normalen xyz der objekte abc enthält und damit anzeigt welche gedreht werden sollen...
weiß nicht ob das jetz wirklich so einfach geht, aber man muss ja nicht gleich exportieren, besser wärs natürlich schon und ein nettes tool für die progger Wink wär bestimmt auch was für die toolbox auf blitzbasic.com

edit:
glaube .b3d wäre am einfachsten zu speichern
es hat nicht zufällig jemand gerade lange weile und sucht sowas wie ne herausforderung? Very Happy

StepTiger

BeitragFr, Dez 29, 2006 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe oben. Die Normalen der Vertices musst du nicht berechnen, da B3D da Funktionen wie VertexNX und so hat ^^
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

BIG BUG

BeitragFr, Dez 29, 2006 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein solches Programm ist nicht so schwer zu schreiben, macht halt etwas Arbeit:
Du musst eine Art Editor machen, in welchem Du Deine Faces auswählen kannst(Linepick, gibt auch schon entsprechende Beispiele im B3D-Ordner(irgend was mit Pick)).
Im Prinzip musst Du dann nur noch die Normalen(mit VertexN-Befehlen zu ermitteln) der ausgewählten Faces umkehren, also nx, ny, nz jeweils mit -1 multiplizieren und mit VertexNormals in das Mesh zurückschreiben(mathematisch also ganz easy).
Im englischen Codearchiv gibts dann einen Code zum Speichern von B3D-Dateien, den Du eigentlich problemlos verwenden können solltest.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

lettorTrepuS

BeitragSo, Dez 31, 2006 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.
  • Zuletzt bearbeitet von lettorTrepuS am So, Dez 31, 2006 23:17, insgesamt einmal bearbeitet

NightPhoenix

BeitragSo, Dez 31, 2006 23:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke ShadowTurtle =)
Ich gab die Absage nicht wegen dem klauen, nur weil es irgendwie doof wäre wenn das Spiel draußen ist, alles verschlüsselt, bloß einer hat dann doch Objekte daraus... nagut schwer nachzuvollziehen ^^
Sorry das du es falsch verstanden hast Wink

Sieht toll aus Smile
Kann dein Scream3D auch .3ds oder ähnliches in der älteren Version exportieren? Dass das Normalenumkehr hat ist genial =) dann könnte ich trotzdem weiterhin mit Wings3D arbeiten, damit komme ich inzwischen nämlich super zurecht und bin darin schnell und effizient.
 

Suthriel

BeitragMo, Jan 29, 2007 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich recht neu bei BB3D bin, und letzens auch auf das gleiche Problem mit den Ebenen gestoßen bin:

was mir aufgefallen ist bei BB3D ist folgendes, ich hatte meine Objekte in C4D erstellt und dann als B3D-Modell exportiert. Bei den Objekten, wo viele gerade Flächen drin sein sollten ,hat Blitz 3D versucht, diese Flächen eigenmächtig an den Enden zu runden. Daher kommen diese komischen Lichteffekte oder Verzerrungen. Dabei beschränkt sich BB3D auf die jeweils letzten Polygone der jeweiligen Fläche und versucht diese warum auch immer eben als gerundet darzustellen. Hab leider kein Screenshot von meinem Modell hier, aber es ließ sich so beschreiben. Bau mal einen Würfel in deinem Modellier-Programm, dessen Seiten aus mehreren Polygonen bestehen (zb 9 Quadtrate pro seite, siehe Bild unten) und render den dann mal. dann dürfe wieder der gleiche effekt auftreten. hat auch nix mit den Normalen zu tun. wenn du den selben Würfel jetzt noch weitere Polygone an den Enden hinzufügst, werden dann eben nur diese am Rand gerundet und die inneren bleiben glatt. Sah bei meinem Modell dann etwas Tron-like aus.

Hat mich an ein missglücktes Glätten-Tag (Phong-Shading?) aus C4D erinnert. Ich weiss jetzt nicht, ob das nur bei manchen exportierten Objekten der Fall ist, oder auch bei solchen die in BB erstellt wurden.

Zum Bild, ein Testwürfel, schnell in Powerpoint gezeichnet ^.^ bei beiden dürfte BB3D jeweils die weißen POlygone versuchen zu runden, die grünen Flächen sind die, die auch tatsächlich als Ebene gerendert werden. So wars jedenfalls bei mir. Weiss jemand ob man BB irgendwie sagen kann, das es das nicht machen soll, bzw ob man das selbst irgendwie ein und ausschalten kann? Bei manchen Objekten kanns ja ganz nützlich sein.

user posted image
Wer die Pizza nicht ehrt, ist die Pasta nicht wert.

bekennender Noob
 

Dreamora

BeitragMo, Jan 29, 2007 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Blitz versucht garnichts. Wenn du so einen Effekt hast war dein Model einfach falsch bzw. du hattest in deinem Modeller Programm Daten die nicht exportiert wurden (zB Modifier die nicht in die Geometrie fest integriert wurden und damit nicht exportiert und derartige Dinge)

Blitz zeigt exakt das an was im Model ist.
Dabei solltest du dir jedoch auch immer bewusst machen, das eine ganze Stange Daten die du in HighEnd 3D Modellern wie C4D verwenden kannst in 3D Echtzeitengines ganz einfach ignoriert werden weil sie für Echtzeit keinerlei Relevanz haben. Gab da Mal ein interessantes C4D 7 Tutorial für LowPoly Modelling, das würde ich dir sehr ans Herz legen. Denn mehr als da drin ist kannst du nicht verwenden (+- zumindest)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Suthriel

BeitragMo, Jan 29, 2007 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmmm, mit anderen Worten, der Exporter schickt da noch eine Option ins B3D Format mit, welche Blitz dann als "runden"befehl auffasst. Irrtümlich wies scheint, bei mir und dem Threadersteller, da ich bei dem beispiel selbst nichts von runden oder glattzeichnen im Modell erstellt hatte, einfach nur ein Grundobjekt ohne irgendwelche Effekte. Und der Threadersteller benutzt ja noch ein anderes Programm (wings?) mit dem selben unschönen Effekt.
Aber gut zu wissen, werd ich wohl mal mit dem Exporter rumspielen müssen und mit den Modellen, um zu sehen, was genau da schief läuft Confused
Wer die Pizza nicht ehrt, ist die Pasta nicht wert.

bekennender Noob

pixelshooter

BeitragMo, Jan 29, 2007 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
diesen effekt nennt man phong shading. In c4d lässt sich dieser durch löschen des phong tags abstellen, was bb3d meine ich auch ausliest. wenn es nix hilft, unterbreche die kanten und schalte notfalls "unterbrochene kanten auswerten" aus. Vllt hilft das, das phong shading nur an bestimmten stellen einzuschalten
 

Dreamora

BeitragMo, Jan 29, 2007 16:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Suthriel hat Folgendes geschrieben:
Irrtümlich wies scheint, bei mir und dem Threadersteller, da ich bei dem beispiel selbst nichts von runden oder glattzeichnen im Modell erstellt hatte, einfach nur ein Grundobjekt ohne irgendwelche Effekte.

Aber gut zu wissen, werd ich wohl mal mit dem Exporter rumspielen müssen und mit den Modellen, um zu sehen, was genau da schief läuft Confused


Das Problem in diesem Falle liegt vermutlich an "Smoothing Groups". Wenn verschiedene Flächen (speziell bei einem Würfel oder 90° Winkeln allgemein) eine scharfe Kante haben sollen so MÜSSEN die Seitenflächen explizit eigene Eckpunkte haben. Du kannst also nicht 1 Eckpunkt für 2 Seiten nutzen.
Das ist für gewöhnlich recht einfach zu erreichen auch nachträglich, denn viele Modeller haben so etwas wie einen "separator", so das man Flächen herausschneiden kann und als eigene Objekte hat. Wenn man diese dann einfach wieder mit dem Objekt verschmelzt, ohne die Eckpunkte zu mergen, ist das Problem gelöst. Eine andere und viel einfachere Variante ist es garnicht erst Dinge wie Subdivision Modifier und dergleichen zu nutzen, denn auf einem Spielmodel haben die in 90% der Fälle sowieso nix zu suchen (die anderen 10% sind Autos und organische Strukturen in einem gewissen Rahmen)

Was du da auf jeden Fall erhälst, wenn du einen Würfel erzeugst, wird als Smoothing Group bezeichnet und das führt dazu dass das Licht an der Kante in einer Art gebrochen wird, das es "gleichmässig" auf beide Seiten fällt, was nicht umbedingt der gewünschte Effekt ist wenn man extra solche Kanten integriert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Ray-Tracer

BeitragMo, Jan 29, 2007 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Also Ich hatte solche Probleme noch nicht ,ehrlich gesagt.

-Auf den ersten Blick würde Ich bei sowas auch auf Smoothing Groups-Fehler tippen.

-evtl. sind auch doppelte Polygone/Triangles übereinander/an der selben Stelle.(dann vielleicht noch mit verschiedenen SmoothGroups)

-Ich würd auch mal die Vertexe überprüfen ,evtl. eine Seite geweldet(zusammengeschweisst) andere nicht.

-Dann würd ich noch versuchen ,die Lichter anders zu positionieren evtl.andere Arten

-Wenn das nicht hilft ,neu machen.
__wunschklang__
 

BIG BUG

BeitragMo, Jan 29, 2007 23:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Derzeit werden noch keine Normalen beim B3D-Export gespeichert, für ein flach schattiertes Modell musst Du also die Funktion von der ersten Seite dieses Threads benutzen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

NightPhoenix

BeitragDi, Jan 30, 2007 9:15
Antworten mit Zitat
Benutzer-Profile anzeigen
die funktion funzt auch wunderbar... manchmal gibt es aber richtig gedrehte flächen, die durch die funktion wieder falsch werden.... verwirrend ^^
 

Suthriel

BeitragDi, Jan 30, 2007 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Das Problem in diesem Falle liegt vermutlich an "Smoothing Groups". Wenn verschiedene Flächen (speziell bei einem Würfel oder 90° Winkeln allgemein) eine scharfe Kante haben sollen so MÜSSEN die Seitenflächen explizit eigene Eckpunkte haben. Du kannst also nicht 1 Eckpunkt für 2 Seiten nutzen.
Das ist für gewöhnlich recht einfach zu erreichen auch nachträglich, denn viele Modeller haben so etwas wie einen "separator", so das man Flächen herausschneiden kann und als eigene Objekte hat. Wenn man diese dann einfach wieder mit dem Objekt verschmelzt, ohne die Eckpunkte zu mergen, ist das Problem gelöst.


Tagchen und danke erstmal für die Antworten

hab mich gestern abend nochmal an mein Testmodell gesetzt und die genannten Varianten durchprobiert. Es ist bei mir wirklich ein Smoothing-Group-Problem. Leider ein hartnäckiges, weil selbst das Polygon ablösen (jedem Polygon seine eigenen Eckpunkte erstellen) das Problem nicht beheben konnte. Phong-Tags wurden komplett ignoriert, egal welche Werte ich da einsetzte oder sie löschte. Erst als ich jede Fläche zusätzlich als eigenständiges Objekt abgetrennt hatte und auch alle als einzelne Objekte exportiert hatte, wurden die Kanten gerade und scharf.

ein Problem mit den Normalen ists wohl weniger, weil ich bei meinem Modell sofort sehe, wo die Normalen falsch herum sind ^.^ an der Stelle ist eine Lücke drin, da die Texturen nur auf die Vorderseite gepappt werden (auch wenns in C4D als beidseitig festgelegt ist). Diese genannte Funktion hab ich aber noch nicht testen können, werd ich aber bei Gelegenheit nachholen. Villt hilft die ja auch schon.

@Big Bug: cool das ich den großartigen Programmierer des C4D Exporters hier treff, da kann ich dir gleich nochmal für dieses supie Teil danken. Ich scheine zwar eine C4D version zu haben, die sich nicht so ganz damit verträgt, oder ich bin noch zu unerfahren und mach Fehler, aber ich find dein Exporter dennoch 1A
(eine weitere Macke die bei mir auftritt: die Option in deinem Exporter zum Texturleuchten ein und ausschalten wird bei mir immer ignoriert, ich muss das Farbe multiplizieren selbst in C4D einstellen, damit die Textur dann in BB3D nicht mehr leuchtet)
Wer die Pizza nicht ehrt, ist die Pasta nicht wert.

bekennender Noob

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group