sich drehender 3D-Planet !ohne! 3D Engine

Probleme beim Erstellen von 3D-Modellen und Texturen, keine Ahnung womit man Musik macht? Dies ist dein Forum.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

sich drehender 3D-Planet !ohne! 3D Engine

Beitrag von STARGÅTE »

Tachchen,

ich suche jemanden der eine Idee hat wie ich einen sich drehenden Planeten (um die Y-Achse, beim 2D-Bildschirm) sehr schnell darstellen kann ? :|

Meine erste Idee war ein Sprite im Hintergrund nach links laufen zu lassen und dieses dann mit einen großen Blickloch zu überdecken, aber das sieht
natürlich dumm aus. :freak:
Es sollten sich also schon die Pole langsammer bewegen als der Äquator ! :allright:

Ach so ich will auch keine 360 verschiedene Bilder nach einander anzeiegn lassen! :lol:

Hat jemand einen Vorschlag ? :roll:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Ich nehme mal an, dass du mit 3D engine die OGRE engine von pb meinst....nimm doch OpenGL *ist zwar auch was ähnliches, brauchst aber keine DLL mitzuliefern^^*
-.-"
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Green Snake hat geschrieben:Ich nehme mal an, dass du mit 3D engine die OGRE engine von pb meinst....nimm doch OpenGL *ist zwar auch was ähnliches, brauchst aber keine DLL mitzuliefern^^*
naja so was wollte ich ja nicht

Ich versuche es mit Sprites zu machen die sich bewegen

will keine Polygone für eienen Planeten machen ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: sich drehender 3D-Planet !ohne! 3D Engine

Beitrag von Kaeru Gaman »

STARGÅTE hat geschrieben:sich drehender 3D-Planet !ohne! 3D Engine

@GreenSnake: welchen Teil von "OHNE" hast du nicht verstanden?


@Stargate:

> Ach so ich will auch keine 360 verschiedene Bilder nach einander anzeiegn lassen!

tja, dann wirds dünn...

du hättest noch die möglichkeit, die 360bilder vorher in ein AVI umzuwandeln, und das in einem Sprite anzuzeigen...

eine notlösung wäre, den planeten von oben zu zeigen, das geht dann easy mit RotateSprite3D...

oder du bleibst bei deiner blickloch-konstruktion, wenn du mehrere streifen verwendest,
die unterschiedlich schnell verbeiziehen, wirkt es evtl. etwas besser...

aber die übliche lösung ohne engine ist wohl prerendern,
und da bleibt dir wie ich das sehe nichts anderes als 360 sprites oder AVI...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

@KG

>>Ich nehme mal an, dass du mit 3D engine die OGRE engine von pb meinst....

ich ging davon aus, dass er sie (wie wir alle) nicht mitliefern will :roll: /:-> :D :mrgreen:

Rückschlag:
>>Ach so ich will auch keine 360 verschiedene Bilder nach einander anzeiegn lassen!

was gibts denn da nicht zu verstehen :twisted:


*UndNunSichWiederMitKaeruVertragen*
-.-"
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: sich drehender 3D-Planet !ohne! 3D Engine

Beitrag von STARGÅTE »

Kaeru Gaman

oder du bleibst bei deiner blickloch-konstruktion, wenn du mehrere streifen verwendest,
die unterschiedlich schnell verbeiziehen, wirkt es evtl. etwas besser...

das war auch meine erweiterte Idee !

das wäre sehr gut aller ding muss man jetzt noch die Krümmung an den seiten beachten also müsste ich gleichzeitig die Sprite zum Rand hin clippen und dann ein weiteres Rechteck einfügen usw.

ALSO :

Ein Geflächt aus Sprites die sich alle unterschiedlich bewegen und geclipt werden.

o je das ist schon wieder die Vorstufe zu 3D-Engine :lol:

PS: imm mich mal bei ICQ auf ! Du wurdes bei meiner Liste geworfen k.A. warum
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

Da gibt es noch eine möglichkeit, eine kugel nur über sin/cos darzustellen. Hier ist ein kleines Tut dazu:

http://pixwiki.bafsoft.com/mags/11/arti ... phere.html
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Zaphod hat geschrieben:Da gibt es noch eine möglichkeit, eine kugel nur über sin/cos darzustellen. Hier ist ein kleines Tut dazu:

http://pixwiki.bafsoft.com/mags/11/arti ... phere.html
jo ist einfach aber zimlich langsam ....

denn die gezerrten Sprite3D sollten nicht zu groß sein.

Aber klar das ist völling entgangen ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

habe ich schnell programmiert :

1000 Punkt einer Kugel

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(1024, 768, 32, "Kugel") 

Structure P
 x.l
 y.l
 F.l
EndStructure
NewList P.P()
Procedure Punkt(x, y, F)
 AddElement(P())
 P()\x = x           ; Winkel (   0 .. 360 )
 P()\y = y           ; Höhe   (  -r ..   r )
 P()\F = F           ; Farbe  RGB()
EndProcedure

b.f = 3.14159265/180


r.l = 200  ; Radius


For n = 1 To 1000 :
 Punkt(Random(359), Random(2*r)-r, RGB(Random(127)+128,Random(127)+128, 0))
Next n

Repeat

 Kreis = Kreis + 1
 If Kreis >= 360 : Kreis = Kreis - 360 : EndIf

 ClearScreen(0,0,0)

 StartDrawing(ScreenOutput())
  ResetList(P())
  While NextElement(P())
   Plot(512+Sin((P()\x+Kreis)*b)*Sqr(Pow(r,2)-Pow(P()\y,2)), 384+P()\y, P()\F)
  Wend
 StopDrawing()

 FlipBuffers()          
 ExamineKeyboard() 

Until KeyboardPushed(#PB_Key_Escape)

CloseScreen()

End
so jetzt nur noch dir Textur ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8808
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

So siehts lustig aus: :mrgreen:

Code: Alles auswählen

For n = 1 To 1000 : 
 Punkt(Random(180), Random(r), RGB(Random(127)+128,Random(127)+128, 0)) 
Next n 
Und was ist, wenn du doch ein langes Sprite nimmst, aus dem du dann ein sich von links nach rechts bewegendes Rechteck ausschneidest und es wie folgt verzerrst: Jetzt gehst du Zeile für Zeile durch das Rechteck und resized sie. Oben und unten logischerweise ein oder Null Pixel und in der Mitte so breit wie Anzahl der Zeilen. Das wird vielleicht annähernd der Effekt. /:->
Antworten