Ein Entity nicht perspektivisch verzerren lassen möglich ?
Übersicht BlitzBasic Blitz3D
Omenaton_2Betreff: Ein Entity nicht perspektivisch verzerren lassen möglich ? |
Sa, Jan 06, 2007 12:51 Antworten mit Zitat |
|
---|---|---|
Hallo !
Ich habe eine 3D Weltraum Scene, in der ich standard, also perspektieve bietende Kamera benutze (Ich will keine orthogonale Projektion für das Spiel). Das ist normalerweis auch schön und gut bei dem meisten Objekten. Es sieht aber schlecht bei Planeten aus. Von Planeten würde man erwarten, daß sie schön rund aussehen, aber leider wird die Kugel auch verzerrt, wenn sie von der Kamera seitwärts und tiefer liegt. Gibt es eine Möglichkeit, einem Entity (in meinem Fall dem Planeten) sagen, es soll sich perspektivisch nicht verzerren lassen ? Ich nehme an, das geht nicht, aber ich frage lieber, ich habe wenig Erfahrung mit 3D. Wie kann man sonst hinbekommen, daß trotz standar Kamera Planeten schön rund dargestellt werden, auch dann, wenn sie nicht mittig liegen ? Irgend eine Idee ? |
||
Dreamora |
Sa, Jan 06, 2007 13:15 Antworten mit Zitat |
|
---|---|---|
Die "faule Idee" für dieses Problem ist einfach ein texturierter Sprite der im Billboard Modus ist.
Die andere Variante, welche leider nicht umbedingt einfach ist, ist den Planeten "gegenskalieren", das heisst das was die perspektivische Verzerrung verursacht einfach zu kompensieren Variante 3 wäre mit dem Zoom Wert rumspielen und versuchen es damit zu kompensieren, denn das Problem tritt primär wegen dem Blickwinkel auf. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
lettorTrepuS |
Sa, Jan 06, 2007 13:55 Antworten mit Zitat |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
Dreamora |
Sa, Jan 06, 2007 14:12 Antworten mit Zitat |
|
---|---|---|
Sicher das es keinen Unterschied macht? Jedes Renderworld nutzt ja ein neues Begin / End beim zeichnen, was ja auch nicht "umsonst" ist.
Aber ansonsten wärs natürlich auch eine supi Idee (an Unterteilung der Renderschritte hatte ich garnet gedacht ) wenn du es in der Art von Hintergrund perspektiv , ortho planet, rest perspektiv rendern meintest. Habe ich noch nie getestet, wüsste von daher nicht, ob das nicht irgendwelche "passt irgendwie nicht rein" perspektivenfehler zur Folge hat. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
stfighter01 |
Sa, Jan 06, 2007 14:14 Antworten mit Zitat |
|
---|---|---|
alle arten von gegenberechung bedingen aber das kollisionen mit dem planeten an unerwarteten stellen passieren. | ||
Denken hilft! |
FireballFlame |
Sa, Jan 06, 2007 14:25 Antworten mit Zitat |
|
---|---|---|
Wie ?Meinst du CameraProjMode? Oder wolltest du eben das nicht? o.O | ||
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 |
Dreamora |
Sa, Jan 06, 2007 14:28 Antworten mit Zitat |
|
---|---|---|
stfighter01 hat Folgendes geschrieben: alle arten von gegenberechung bedingen aber das kollisionen mit dem planeten an unerwarteten stellen passieren.
Nicht wirklich, denn wenn du dran bist, wird es keine Gegenskalierung mehr geben, denn die wird nur gebraucht, wenn das Objekt am Rand ist und weiter entfernt. Und er wollte keine ortho Projektion, allerdings ist mit STs vorschlag natürlich eine normale Projektion für alles ausser dem Planeten möglich, womit es eigentlich (sofern wie oben erwähnt das ganze dann nicht "komisch" aussieht) möglich ist. Allerdings kommt mir grad der hacken in den Sinn: in dem Falle müssen die Planeten manuell skaliert werden, damit die perspektivische Grösse noch stimmt -> was weiter weg ist ist klein. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
stfighter01 |
Sa, Jan 06, 2007 16:40 Antworten mit Zitat |
|
---|---|---|
Dreamora hat Folgendes geschrieben: stfighter01 hat Folgendes geschrieben:
alle arten von gegenberechung bedingen aber das kollisionen mit dem planeten an unerwarteten stellen passieren.
Nicht wirklich, denn wenn du dran bist, wird es keine Gegenskalierung mehr geben, denn die wird nur gebraucht, wenn das Objekt am Rand ist und weiter entfernt. ja, aber ich gehe mal davon aus das es gegner projektile etc. geben wird. klar, das ganze ist nur ein optisches problem, aber bedenken würde ich dennoch ob sich der aufwand dann immer noch lohnt. |
||
Denken hilft! |
Omenaton_2 |
Mo, Jan 08, 2007 12:15 Antworten mit Zitat |
|
---|---|---|
Vielen Dank für die Antworten.
Ich lasse erstmal den Planeten so , wie er ist, also perspektivisch verzerrt. Es sieht nicht so schlimm aus. Ihc bin mit meinem kleinen Minispiel schon fast fertig. Ich mache es erst ganz fertig und dann experimentiere ich damit ein wenig, ob ich doch noch ohne viel Aufwand den Planeten runder bekomme. Runder sieht einfach besser aus. Ich habe paar Screenshots von anderen Spielen angeguckt und die haben dieses Problem auch. Zoom Camera ist eine nette Sache. Gegenskalieren ist zu umständlich. Das mit dem mehrfach RenderWorld ist interessant, muß ich noch ausprobieren. |
||
Markus2 |
Mo, Jan 08, 2007 13:08 Antworten mit Zitat |
|
---|---|---|
@Omenaton_2
erstmal würde es dir helfen wenn du den Planet so groß wie möglich scalierst und die restlichen Dinge wie Raumschiffe auch um den Faktor vergrößert werden . Also wenn dein Planet z.B. die Größe 1000 hat mach daraus 100000 und den Rest auch 100 mal größer . |
||
Dreamora |
Mo, Jan 08, 2007 15:05 Antworten mit Zitat |
|
---|---|---|
Sehr schlechte Idee, weil dann müsstest du Kamerasichtweiten haben, die unter die Kategorie: "übelster Noobfehler" gehen. Ein Faktor von 10000 - 15000 von min zu max ist irgendwo noch sinnvoll, bei den Grössenverhältnissen wären jedoch bald Millionen nötig um noch eine gescheite Sichtweite zu ermöglichen. (ausser man soll primär garnichts sehen bis man bald im planeten klebt etc) | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Markus2 |
Mo, Jan 08, 2007 19:42 Antworten mit Zitat |
|
---|---|---|
was sehr weit weg ist würde ich dann auch als Sprite darstellen . | ||
hecticSieger des IS Talentwettbewerb 2006 |
Mo, Jan 08, 2007 20:03 Antworten mit Zitat |
|
---|---|---|
Weil ich der Perspektivenveränderung gegenüber der Entfernung nicht zu glauben vermochte, habe ich ein kleines Testprogramm dazu geschrieben:
Code: [AUSKLAPPEN] Graphics3D 640,480,0,2
SetBuffer BackBuffer() camera=CreateCamera() light=CreateLight() RotateEntity light,40,40,0 sphere=CreateSphere(32) PositionEntity sphere,1.5,1.05,2 While Not KeyHit(1) MoveEntity sphere,.150,.105,.200 If KeyHit(57) MoveEntity sphere,150,105,200 sc#=EntityDistance(camera,sphere) ScaleEntity sphere,sc/10,sc/10,sc/10 RenderWorld Text 20,20,"[Space] Distanz enorm steigern" Text 20,80,"Aktuelle Distanz "+sc Oval 400,20,100,100,0 Flip Wend End Und siehe da. Keine Änderung. |
||
Markus2 |
Mo, Jan 08, 2007 20:51 Antworten mit Zitat |
|
---|---|---|
Wenn man CameraZoom ein bischen größer macht z.B. auf 2.0 verschwindet dieser Ei Effekt so langsam .
Hat Dreamora oben schon erwähnt . |
||
dav3d |
Mo, Jan 08, 2007 22:21 Antworten mit Zitat |
|
---|---|---|
Mir ist gerade eine Idee eingefallen die zwar nicht gerade ideal ist und ich weis überhaupt nicht ob es möglich wäre, aber vll könnte man erst den Hintergrund und die Planeten Orthogonal rendern und dann den Rest ohne Hintergrund darauf rendern. Ist nur sone Idee... | ||
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group