sich drehender 3D-Planet !ohne! 3D Engine
Jetzt komm ich
Ich bin ja ein Fan vom KC85, hatte selbst einen KC85/3, aber den besseren, nicht den aus Mühlhausen.
Hier: http://www.iee.et.tu-dresden.de/~kc-clu ... BRIK05.HTM
Also mit KC-Emu kann man einen KC85 emulieren. Die SSS und BAS-Dateien können einfach geöffnet werden und müssen nicht erst mit einer Kassette eingespielt werden
Das Programm, dass ich speziell meine ist GLOBUS.
Ich finds genial. Und da die heutigen Rechner nicht nur 1,7 MHz haben, sondern mehr als tausend mal so viel, dürfte es auch recht zügig gehen.
Keine Sprites, keine 3D-Engine und trotzdem genial.
Naja, aber eher Spielerei. Ansonsten bleiben dir noch Metaballs
Viel Erfolg mit deinem Vorhaben. Gruß, Folker
Hier: http://www.iee.et.tu-dresden.de/~kc-clu ... BRIK05.HTM
Also mit KC-Emu kann man einen KC85 emulieren. Die SSS und BAS-Dateien können einfach geöffnet werden und müssen nicht erst mit einer Kassette eingespielt werden

Das Programm, dass ich speziell meine ist GLOBUS.
Ich finds genial. Und da die heutigen Rechner nicht nur 1,7 MHz haben, sondern mehr als tausend mal so viel, dürfte es auch recht zügig gehen.
Keine Sprites, keine 3D-Engine und trotzdem genial.



Viel Erfolg mit deinem Vorhaben. Gruß, Folker
Kinder an die Macht http://scratch.mit.edu/
danke danke aber mein Planet ist schon fix und fertig
er ist balt bei DUNE 2077 zu sehen
habe es mit TransformSprite3D gamascht und die punkte mit meinem code von vorne errechnet
her schnell ne test-Demo haben will hier:
http://hometown.aol.de/Hmmpgutt/Kugel_Mond.exe
zum schluss ist dann die eine Kante weg und licht!

er ist balt bei DUNE 2077 zu sehen
habe es mit TransformSprite3D gamascht und die punkte mit meinem code von vorne errechnet
her schnell ne test-Demo haben will hier:
http://hometown.aol.de/Hmmpgutt/Kugel_Mond.exe
zum schluss ist dann die eine Kante weg und licht!
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Also hier erst mal der CodeSebe hat geschrieben:Nice!![]()
Wie genau hast du das denn nun gemacht?
Kann sein das er bei dir/euch nicht mehr geht weil er mit 3.3 geschrieben ist oder das manche dinge überflüssig sind.
Das ist der Ansatz für die Kugel ich habe noch andere dinge hinzugefügt.
Wie schon gesagt, Licht, Effekte, ...
1. Bild laden und in kleine Quadrate teilen und diese als Sprite3D laden.
2. gleichmäßig die Punkte der Bild platzieren (360° um die Kugel und dann vom Äquator jeweils 90°) also ist es noch ein Rechteck.
3. Immer 4 Punkte für die Kugel berechnen und ein Sprite3D transformen.
Wenn ich dir die Formel da unten noch mal erläutern soll sag bescheid

Code: Alles auswählen
InitSprite()
InitSprite3D()
InitKeyboard()
OpenScreen(1024, 768, 32, "Kugel")
Structure P
Px.l
Py.l
x.f
y.f
EndStructure
NewList P.P()
Procedure Punkt(Px, Py, x.f, y.f)
AddElement(P())
P()\Px = Px ; X-Sprite (0..36)
P()\Py = Py ; Y-Sprite (0..18)
P()\x = x ; Winkel ( 0 .. 3600 )
P()\y = y ; Höhe ( -r .. r )
EndProcedure
b.f = 3.14159265/180 ; Bogenmaß
Poly = 12 ; Anzahl der Polygone durch 96
r.l = 200 ; Radius der Kugel in Pixel
q.f = 36/Poly/4*10 ; Konstante für später
Sprite$ = "textur_mond.bmp"
If LoadSprite(0, Sprite$) ; das Bild muss 540 * 270 sein
DisplaySprite(0, 0, 0)
For x = 0 To Poly*4
For y = 0 To Poly*2
GrabSprite(4000, x*540/Poly/4, y*270/Poly/2, 270/Poly/2, 270/Poly/2, #PB_Sprite_Texture)
SaveSprite(4000, "C:\Quadrat_Kugel.bmp")
If LoadSprite(x*100+y, "C:\Quadrat_Kugel.bmp", #PB_Sprite_Texture)
CreateSprite3D(x*100+y, x*100+y)
Else
End
EndIf
Next y
Next x
DeleteFile("C:\Quadrat_Kugel.bmp")
Else
End
EndIf
; Erstellen der Punkte auf der Kugel
For x = 0 To Poly*4 :
For y = -Poly To Poly
Punkt(x, y+Poly, x*36/Poly/4*10, y*36/Poly/4*10)
Next y
Next x
Repeat
Kreis = Kreis + 1 ; rotation
If Kreis >= 3600 : Kreis = Kreis - 3600 : EndIf
ClearScreen(0,0,0)
Start3D()
ResetList(P())
While NextElement(P())
If P()\Px < Poly*4 :
; Berechung der 4 Punkte für TransformSprite3D
x1 = 512+Sin((P()\x+Kreis )*b)*Sqr(Pow(r,2)-Pow(Sin((P()\y )*b)*r,2))
x2 = 512+Sin((P()\x+Kreis+q)*b)*Sqr(Pow(r,2)-Pow(Sin((P()\y )*b)*r,2))
x3 = 512+Sin((P()\x+Kreis+q)*b)*Sqr(Pow(r,2)-Pow(Sin((P()\y+q)*b)*r,2))
x4 = 512+Sin((P()\x+Kreis )*b)*Sqr(Pow(r,2)-Pow(Sin((P()\y+q)*b)*r,2))
y1 = 384+Sin((P()\y )*b)*r
y2 = 384+Sin((P()\y )*b)*r
y3 = 384+Sin((P()\y+q)*b)*r
y4 = 384+Sin((P()\y+q)*b)*r
TransformSprite3D(P()\Px*100+P()\Py, x1, y1, x2, y2, x3, y3, x4, y4)
DisplaySprite3D(P()\Px*100+P()\Py, 0, 0, 255)
EndIf
Wend
Stop3D()
FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen()
End
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Da ich mich mit 3D-Formeln kein millimeter auskenne und demnach im Code nichts erkennen kann meine Frage: wird nur das gerendert, was auch sichtbar ist, oder auch der Hintere Teil der Kugel? Es ruckelt nämlich zwischenzeitlich etwas. Und den Kanten der Kugel (logisch *g*) nach zu urteilen sind es nicht mal all zu viele Sprites die hier zum Einsatz kommen müssen.
Pharmacie populaire www.viagrasansordonnancefr.com aide aux malades
was du noch reinmach kannst ist das er die hinteren winkel nicht durchrechet aner das nix angezeit wird macht TransformSprite3D() automatischKTX82 hat geschrieben:Da ich mich mit 3D-Formeln kein millimeter auskenne und demnach im Code nichts erkennen kann meine Frage: wird nur das gerendert, was auch sichtbar ist, oder auch der Hintere Teil der Kugel? Es ruckelt nämlich zwischenzeitlich etwas. Und den Kanten der Kugel (logisch *g*) nach zu urteilen sind es nicht mal all zu viele Sprites die hier zum Einsatz kommen müssen.

PS : wenn du ein problem mit den Kanter der Sprites zueinander hat (weise striche), dann nimm einfach ein negativen Radis.

Es entsteht trotzdem noch ein Planet nur andersherum

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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- 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
Was ich an dem Code nicht verstehe:
Wozu ist diese Zeile gut:
und wieso nimmst du überhaupt eine SpriteID von 4000? Bisschen hoch
vielleicht... Achso, du kennst noch kein [c]#PB_Any[/c], oder?
Aber trotzdem ist das mit dem Speichern doch bestimmt ziemlich langsam. Geht das mit [c]ClipSprite()[/c] nicht?
Am Ende könnte man die Sprites und Sprite3Ds wieder freigeben.
Wozu ist diese Zeile gut:
Code: Alles auswählen
SaveSprite(4000, "C:\Quadrat_Kugel.bmp")
vielleicht... Achso, du kennst noch kein [c]#PB_Any[/c], oder?
Aber trotzdem ist das mit dem Speichern doch bestimmt ziemlich langsam. Geht das mit [c]ClipSprite()[/c] nicht?
Am Ende könnte man die Sprites und Sprite3Ds wieder freigeben.
wollte ich ja auch eigendlich machen aber! wenn ich ein [c]ClipSprite()[/c] nehme und dann [c]CreateSprite3D()[/c] ausführe nimmt er das originalNicTheQuick hat geschrieben:Was ich an dem Code nicht verstehe:
Wozu ist diese Zeile gut:und wieso nimmst du überhaupt eine SpriteID von 4000? Bisschen hochCode: Alles auswählen
SaveSprite(4000, "C:\Quadrat_Kugel.bmp")
vielleicht... Achso, du kennst noch kein [c]#PB_Any[/c], oder?
Aber trotzdem ist das mit dem Speichern doch bestimmt ziemlich langsam. Geht das mit [c]ClipSprite()[/c] nicht?
Am Ende könnte man die Sprites und Sprite3Ds wieder freigeben.

Und wenn ich bei [c]GrabSprite()[/c] sage das es ein #PB_Sprite_Texture werden muss nimmt er das nicht an

Umständlich aber es geht

Ich denke das liegt am verBUGten 3.3

Aber ich habe mich in 3.3 verliebt ^^
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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr