Ein Entity nicht perspektivisch verzerren lassen möglich ?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Omenaton_2

Betreff: Ein Entity nicht perspektivisch verzerren lassen möglich ?

BeitragSa, Jan 06, 2007 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 06, 2007 13:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 06, 2007 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.
 

Dreamora

BeitragSa, Jan 06, 2007 14:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Sad ) 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

BeitragSa, Jan 06, 2007 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
alle arten von gegenberechung bedingen aber das kollisionen mit dem planeten an unerwarteten stellen passieren.
Denken hilft!

FireballFlame

BeitragSa, Jan 06, 2007 14:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 06, 2007 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSa, Jan 06, 2007 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 08, 2007 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 08, 2007 13:08
Antworten mit Zitat
Benutzer-Profile anzeigen
@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

BeitragMo, Jan 08, 2007 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 08, 2007 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
was sehr weit weg ist würde ich dann auch als Sprite darstellen .

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Jan 08, 2007 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 08, 2007 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Jan 08, 2007 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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... Embarassed

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group