SoftPixel Engine (neu: SVN Repository & CMake files)



  • Hallo,

    ich brauche demnächst eine einfach zu bedienende 3D Engine um ein paar einfache Sachen darzustellen und zu animieren.
    Sämtliche Anforderungen an die Engine sind demnach:
    - 3D Unterstützung mit OpenGL
    - Einfach zu bedienen

    Ich habe mir mittlerweile Irrlicht angesehen, scheinbar genau das richtige für mich.
    Gäbe es nun irgendeinen Grund deine Engine statt der Irrlicht Engine zu nehmen? API ist ja z.B. weitgehend die selbe was ich so gesehen habe.



  • Auch wenn ich natürlich vor allem meine Engine befürworten möchte, will ich ehrlich sein und auch die Vorteile der Irrlicht Engine erwähnen.

    Aus meiner Sicht ist die "SoftPixel Engine" noch mal ein stück einfacher und verständlicher als die Irrlicht Engine.

    Das handling der Objetke (z.B. Kontrolle über die Kamera) hat mich an der Irrlicht Engine sehr gestört.
    In der SoftPixel Engine versuche ich die Funktionalitäten möglichst einfach und verständlich zu halten. Aber so, dass es immer noch flexibel ist.

    Der OpenGL support ist bei der SoftPixel Engine bisher am besten, weil dies der Renderer war, den ich ursprünglich als einzigen eingebaut hatte - inzwischen ist Direct3D9 und ein SoftwareRenderer hinzugekommen.

    (du willst zwar mehr mit 3D arbeiten, aber kurz erwähnt: die SoftPixel Engine bietet deutlich mehr 2D Zeichen Funktionen an als die Irrlicht Engine)

    Neben bei unterstützt die SPE viel mehr 3D Standard Primitive:
    Zitat von der Homepage: "cube, cone, cylinder, sphere, torus (ring), pipe, spiral, disk, plane, tetrahedron, cuboctahedron, octahedron, dodecahedron, icosahedron, teapot ("Utah" teapot) and supershape"
    Also diesbezüglich sehr gut, wenn man nicht sehr viele fertige 3D Modelle zur Hand hat.

    Die SPE unterstützt folgende Animationstypen:
    * Node-animation (nur position, rotation und skalierung wird animiert)
    * Morph-target-animation bzw. Keyframe-animation (z.B. für das MD2 Format aus Quake II)
    * Skeletal-animation bzw. Bone-animation (die Gelenke lassen sich auch einzeln manipulieren)

    Shader werden unterstützt und die SPE bietet deutlich mehr Funktionen um die Shader-Uniforms zu setzen. GLSL und HLSL wird unterstützt.

    Die SPE hat ein integriertes kleines Sound System (nutzt winmm), man muss also nicht extra eine externe SoundBibliethek nehmen.
    Und in der nächsten Release-Version sogar ein intergriertes Netzwerk-System mit UDP unterstützung.

    Die SPE verfügt über ein sehr gutes Picking system. Es ist Teil der KollisionsSystems und lässt sich sehr gut nutzen.
    Liefert außerdem Intersektions-Punkt, Normale der getroffenen Oberfläche und einige andere Informationen.
    OctTrees optimieren das Picking und KollisionsSyetem.
    Zudem werden folgende Intersektions-typen unterstützt:
    * Sphere
    * Box
    * Polygon (bzw. Triangles)

    +/-
    Das Kollisions System ist noch nicht perfekt. Es hat noch ein paar Probleme mit der Robustheit.
    Folgende Kollisions-typen werden unterstützt:
    * Sphere-to-Sphere
    * Sphere-to-Box
    * Sphere-to-Polygon (bzw. Triangles)

    (folgendes spricht eher für die Irrlicht Engine)

    Das Laden von 3D Modellen ist noch nicht fertig.
    Einige Formate können noch nicht korrekt oder vollständig geladen werden.
    Derzeit wird die Skelet-animation nur aus B3D (Blitz3D) Modellen geladen, und Keyframe-animation nur aus MD2 (Quake II) Modellen. Jedoch kann das Animations-system für eigene Formate nutzen bzw. eine Skelet-animation kann im Programm manuell erstellt werden.

    Terrains können bislang nur als Heightfields erstellt werden. Geo-MIP-mapping wird noch nicht unterstützt.

    SPE läuft zur Zeit nur unter Windows.

    Mit freundlichen Grüßen,
    Lukas



  • Ich habe heute ein neues Forum für meine SoftPixel Engine und andere Projekte erstellt in dem nun keinerlei lässtige Werbung mehr zu sehen ist.

    http://www.hlc-games.de/forum/

    PS: Die Bilder werden auch noch angepasst.



  • Ich habe heute Abend noch drei Bilder mit meinem GrafikTablett am PC gezeichnet.
    Und zwar Maskottchen für meine 3D Engine 😃

    http://softpixelengine.sourceforge.net/SPEMascot1.png

    http://softpixelengine.sourceforge.net/SPEMascot2.png

    http://softpixelengine.sourceforge.net/SPEMascot3.png

    Wie gefallen euch die Bilder?!



  • Gestern habe ich die SoftPixel Engine 1.8 veröffentlicht.
    Endlich ist sie Platform unabhängig und läuft unter Windows und Linux.
    Ein paar der Tutorials und Beispiele habe ich auch schon für Linux vorkompiliert (müssen allerdings noch per Konsole aufgerufen werden).

    http://softpixelengine.sourceforge.net/sp_downloads.html



  • Interessiert hier wahrscheinlich eh keinen mehr aber man kann's ja mal probieren 🙄

    Heute habe ich die SoftPixel Engine 1.9 hochgeladen und steht nun zum Download bereit 🙂

    Hier ist der Link zur Download-website:
    http://softpixelengine.sourceforge.net/sp_downloads.html

    Hier einen Überblick über das Neue wie es auch in der LICENSE.txt Datei steht:

    VERSION 1.9
    
     * ModelCombiner tool created
       A 'GameEngine like' tool to combine two models has been added.
    
     * LightmapGenerator tool created
       A 'GameEngine like' tool to generate lightmaps for the whole scene has been added.
    
     * ParticleAnimator tool created
       A 'GameEngine like' tool to animate a lot of particles/ sprites.
    
     * Entity class was more cleaned up
       Surface management has been redesigned.
       Each vertex/ texture/ surface modification functions are now crash safe.
    
     * Level of detail meshes added
       LOD (Level of detail) feature has been added in the Entity class. Use the "addLODMesh" function.
    
     * Surface optimization optimized
       Sounds funny but it's true, the process of surface optimization has been speeded up.
    
     * Volumetric sounds correction
       3D sound effect has been repaired and works very good now. Listener position
       and orientation is setable by the sound device
    
     * Goodbye for the GUI
       The in-house GUI (GraphicsUserInterface) has been removed from the project completely
       because of incompleteness and uselessness.
       The source code of this part is furthermore available in the "media" folder as a
       detached project.
    
     * Spline translations for node animations
       The node animatinos now support spline translations for smooth movements.
    
     * Better light manangement
       You can only see 8 light sources with OpenGL and Direct3D9 but the SoftPixel Engine
       sorts the lights in dependent of the distance to camera.
    
     * Mesh buffers in Direct3D9 driver completed
       Finally the vertex- and index buffer creation in the Direct3D9 driver works fine.
       Now the rendering is much faster! Like the VertexBufferObjects (VBOs) in OpenGL.
    
     * Mesh reference function added
       The Entity's "setMeshReference" function can be used to reduce costs of memory.
       This function allows you to link the entity to an other entity's mesh buffer list
       when drawing multiple equal 3d models.
    
     * Frustum culling
       Now each object can get a bounding box to be blended out when it is out of active camera's view frustum.
    
     * New standard primitive "Icosphere" (ENTITY_ICOSPHERE) and rebuild "Dodecahedron"
       Segments/subdevision is the same like in Blender and is in the range of 1 and 8.
    
     * ModelCreator supports Bezier patches now
       The standard primitive "Teapot" is now also created by Bezier patches.
    
     * RenderTargets created
       Using RenderTargets in Direct3D9 and FrameBufferObjects (FBO) in OpenGL.
       Use the function "Texture::makeRenderTarget".
    
     * Complete new SPM format architecture (v.2.0)
       Now the SoftPixelModel format saves much more memory and has a better structure.
    
     * Immediate mesh buffer update
       Now the engine is able to update the mesh buffers immediate, i.e. when changed a vertex coordinate
       the mesh buffer is updated for this single vertex. Can be enabled with "Entity::setUpdateImmediate"
    
     * OpenGL Index buffer support
       Finally the mesh buffers with OpenGL also have an index buffer.
       The time before the engine only used OpenGL vertex buffers.
       Further more there is now more control for the hardware mesh buffers. The following functions are now
       available in the Entity class:
       updateMeshBuffer, updateVertexBuffer, updateIndexBuffer, updateMeshBufferVertex, updateMeshBufferTriangle
    
     * ToxyVision Model (TMF) loading support discontinued.
       There is no longer a support for the unimportant TMF 3d file format.
    


  • Mich interessiert es ...
    Echt ein tolles Projekt.

    MfG cobra11freak



  • Eine frage hätte ich dazu noch...So weit ich gelesen habe unterstützt die Engine nur das alte BSP Format. Wäre es nicht auch irgendwie möglich das du die Source BSP Files unterstützt oder wäre das zuviel aufwand?

    Mfg cobra11freak



  • cobra11freak schrieb:

    Eine frage hätte ich dazu noch...So weit ich gelesen habe unterstützt die Engine nur das alte BSP Format. Wäre es nicht auch irgendwie möglich das du die Source BSP Files unterstützt oder wäre das zuviel aufwand?

    Warum zu viel Aufwand? Das Format unterscheidet sich nicht groß. Wundert mich gerade das er den VBSP-Parser noch nicht implementiert hat, immerhin hat er mir schon einen geschickt.



  • Dann würd ich das an seiner stelle machen, da das alte bsp format sowieso nicht mehr aktuell ist. Kann den die Engine überhaupt so viele Polygone Rendern?

    MfG cobra11freak



  • Hi 🙂

    Also eventuell könnte ich das neuere BSP Format von der Source Engine auch moch einbauen.
    Ich hatte sogar mal kurzzeitig mit einem "Source BSP" Loader angefangen.

    Rendern kann die Engine sogar sehr viele Polygone. Besonders jetzt in der Version 1.9 wo ich viele neue Optimierungen eingebaut habe wie Frustum-Culling oder Level-of-detail meshes (wobei diese natürlich für statische Level nicht so gut einzusetzen sind).

    Neben bei, das dürfte euch interessieren:
    Ich habe jetzt das eine Unterforum "Multilingual" erstellt, in dem jetzt auch unregistrierte User neue Threads erstellen und auch Betiräge antworten können! 😃
    Neue Threads muss allerdings ein Moderator oder Administrator freischalten, wegen Spam Schutz. Ich schaue aber eigentlich täglich mehr mals rein 😉
    Wenn ihr Fragen dazu habt, nur zu 🙂

    Hier ist der Link zu diesem Forum: http://www.hlc-games.de/forum/viewforum.php?f=22

    Gruß,
    Lukas



  • Hi
    Das find ich echt cool von dir. Mach das mal, ich meine der CS 1.6 Loader ist ja eigentlich echt nicht so wichtig wie der von den VBSP Files. Aber echt ein supergeiles Projekt. Wenn ich etwas mehr Programmier erfahrung hätte würde ich sehr gerne mithelfen, da ich gesehen habe, dass du das ganze ja ganz alleine machst. Finde ich aber echt bewundernswert, dass eine Person soetwas erschaffen hat.

    MfG cobra11freak



  • Heute habe ich die SoftPixel Engine 2.0 mit VisualC++ support veröffentlicht.
    Ich hoffe, dass jetzt etwas mehr Interesse an der Engine gefunden wird und, dass ihr mit dem VisualC++ support etwas anfangen könnt 🙂
    Auch habe ich ein paar komplett neue Tutorials mit gut dokumentiertem Code zum SDK hinzugefügt mit jeweils Code::Blocks, VisualStudio 9 und DevC++ Projekt Dateien.

    http://softpixelengine.sourceforge.net/downloads.html



  • Habe vorgestern noch bei dir vorbeigeschaut und mich gewundert, was das Teil mittlerweile alles kann. Werd demnächst mal ein VC2008 Projekt aufziehen und etwas rumspielen. Scheint ja ähnlich wie Irrlicht zu sein



  • Freut mich 🙂 und wenn ihr Fragen habt ohne euch gleich in meinem Forum zu registrieren: im SubForum Multilingual können auch unregistrierte Nutzer Beiträge und Themen schreiben 😉
    Ich muss die nur immer erst aktivieren, bevor andere sie sehen können - aber für kleine Zwischendurch Fragen sollte das reichen.



  • Direct3D11 renderer, endlich! 😃

    Heute habe ich die SoftPixel Engine 2.1 alpha veröffentlich.
    Sie dient jedoch nur zu Testzwecken und ist kein offizieller Release. Das steht auch in der Beschreibung auf der Download Seite 😉
    Viel Spaß beim Testen 😃
    Bei den Beispielen werdet ihr noch keinen großen Unterschied fest stellen, außer bei "Primitives" tutorial, da wird alles mit per-pixel-lighting gemacht bei DX11.
    PS: Welche open-source 3D Engine gibt es im Moment schon die Direct3D11 unterstützt? Interessiert mich mal so neben bei 🙂



  • Ich schreibe im Moment für ein eigenes Projekt einen Converter welcher eine Source .BSP Map in mein eigenes relativ einfaches Model Format umwandelt. In diesem Model Format werden einfach alle Triangles mit Vertex- und Normaldaten gespeichert, was das Rendern nacher relativ einfach macht. Die reine Map-Geometrie funktioniert schon ganz gut, arbeite Momentan an den Displacements (Displacements sind die Meshes für nicht-planare Böden/Felsen etc.). Ein Teil der Displacements wird richtig dargestellt, einige jedoch noch nicht. Ich weis auch schon woran das liegt habe aber im Moment keine Zeit das zu fixen.

    Wenn du interressiert am Sourcecode bist kann ich dir den gerne mal schicken.

    Achja und zum Projekt: echt nicht schlecht 🙂

    /Edit: Displacements fixed. Sind echt umständlich abgelegt im BSP Format...



  • Klar bin ich an dem Source Code interessiert. Das BSP Format ist schon interessant, aber ich habe im Moment keine Zeit den Loader komplett selbst zu schreiben.
    Daher würde ich da gerne mal rein gucken.
    Kannst's mir ja an meine private EMail schick:
    lukas.hermanns@freenet.de
    Gruß,
    Lukas



  • Hast eine Mail 😉



  • Hier ist eine Tessellation Demo auf YouTube:
    http://www.youtube.com/watch?v=BeAqJu9UapQ


Anmelden zum Antworten