Partikel in OpenGL



  • Danke erstmal, aber wie kann ich die Koordinaten Transformieren, ich verstehen leider noch nicht wie ich das Machen soll, das es geht hab ich mir schon gedacht, aber wie ist mir weiterhin ein Rätsel.





  • Super link, danke, aber leide ist die Seite äusserst unvollständig, und ein Bestimmter Artikel wäre mir lieber. Die Grundlagen kenne ich ja, das haben wir in der Schule gemacht, nur Haben wir nir mit Matrizen gerechnet, wir hatten blos die Matrizen-Schreibweise für Gleichungssystheme, aber was die Mit der Matrix aus OpenGL zu tun hat, da hab ich keine Ahnung.


  • Mod

    zum rotieren sollte dir sin/cos reichen. fuer simple particle waeren matritzen overpowered und was du da beim zeichnen anstellst, duerfte die performance einer wanderduene haben 😉

    mit helljobs 4punkte plan sollte es was werden, oder du nimmst 7kg ab 😉



  • Ich hab mal angefangen, mit dem VBO, und hatte gehofft, das mich das weiterbringt, allerdings unterstützt mein System die nicht. Ich weiß allerdings nicht, ob das an der mangelhaften Treiberunterstützung von ATI liegt, oder an etwas anderem.

    Also an alle, die ne Neue Grafikkarte haben wollen, und mit dem Gedanken Spielen Linux anwender zu werden, die Treiberunterstützung von ATI ist fürn *****, nehmt was anderes.

    aber back to topic, ich hab immer noch kein blassen schimmer, wie das geht. SinCos ist mir Vertraut, Aber die Beschreibung ist mir absolut ein Rätsel, ich bin noch Anfänger in OpenGL, da helfen mir so Grobe richtlinien garnichts wenn es um etwas geht, was ich nicht kenne. Ich brauche ein kleinen Beispielcode, damit ich eine Blasse vorstellung davon bekomme, wie ihr denn gedenkt das umzusetzen.

    Edit: Point Sprites werden auch nicht unterstützt.



  • VBO [...] unterstützt mein System nicht.

    Wenn Deine Grafikkarte nicht aus dem letzten Jahrtausend stammt, dann geht das sogar mit ATI.
    Schau mal in Deine glx.h, da gibt's 'ne Funktion namens glXGetProcAddressARB.
    Da tust Du mal folgende Parameter rein:
    "glGenBuffersARB", "glBindBufferARB", "glBufferDataARB", "glDeleteBuffersARB", "glMapBufferARB", "glUnmapBufferARB".
    Und in die glext.h schauste auch mal rein.
    Oder Du benutzt sowas.
    Beispielsourcen gibt's dazu wohl auch genug, zb hier.



  • Ich benutze sowas: GLFW. Da gibt es folgende Möglichkeit:

    #ifdef GL_ARB_vertex_buffer_object
        const int vbo_supported = glfwExtensionSupported("GL_ARB_vertex_buffer_object");
    #else
        const int vbo_supported = GL_FALSE;
    #endif
    
    #ifdef GL_ARB_point_sprite
        const int ps_supported = glfwExtensionSupported("GL_ARB_point_sprite");
    #else
        const int ps_supported = GL_FALSE;
    #endif
    
    //[...]
    
        cout << "Vertex Buffer Object: " << vbo_supported << endl;
        cout << "Point Sprite          " << ps_supported << endl;
    

    Die Ausgabe:

    Vertex Buffer Object: 0
    Point Sprite          0
    

    und in meiner glx.h gibt's keine glXGetProcAddressARB, was soll denn das sein?

    Hier mal eine Übersicht, was mit das Nehe tutorial 24 ausgibt:

    Renderer ATI Radeon Xpress Series
    Vendor   ATI Technologies Inc.
    Version  1.2 (2.0.6473 (8.37.6))
    
    1   GL_ARB_multitexture
    2   GL_ARB_texture_border_clamp
    3   GL_ARB_texture_cube_map
    4   GL_ARB_texture_env_add
    5   GL_ARB_texture_env_combine
    6   GL_ARB_texture_env_dot3
    7   GL_ARB_transpose_matrix
    8   GL_EXT_abgr
    9   GL_EXT_blend_colot
    10  GL_EXT_blend_minmax
    11  GL_EXT_blend_subtract
    12  GL_EXT_texture_env_add
    13  GL_EXT_texture_env_combine
    14  GL_EXT_texture_env_dot3
    15  GL_EXT_texture_lod_bias
    


  • Sehr uebersichtlich 🙂
    Und Du hast auch bei ATI mal so'n Treiber runtergeladen?



  • ne, ich benutze das Tool von Ubuntu, das für diesen dienst zuständig ist. "Verwaltung eingeschränkter Treiber", ich hab gehört, das das Herunterladen von ATI nur eine Alternative zum selben ergebnis ist. Aber ich hab eine ATI Radeon Xpress 1100 dafür ist unter ati.com sowiso kein Treiber in der Liste, nur einer für die 200er und die 1250er Version.



  • Aber wenn das doch schon eingeschränkter Treiber heisst...



  • Ja in der Tat, die sind sehr eingeschränkt, aber die meinen ja doch blos, dass es nicht open source ist.



  • ... meint bei NVIDIA z.b., dass es keine 3-d Beschleunigung gibt. Und wenn es das auch bei ATI heißt (was ich vermute), dann liegt die Lösung ja auf der Hand, oder?



  • mad_martin schrieb:

    ... meint bei NVIDIA z.b., dass es keine 3-d Beschleunigung gibt. Und wenn es das auch bei ATI heißt (was ich vermute), dann liegt die Lösung ja auf der Hand, oder?

    Also ich spiel hier unter Linux auch 3D-Spiele (sowas wie Cod2 läuft sogar perfekt) unter Linux mit ner Geforce...
    ATI ist da schlechter dran... (noch?)

    => Infos: http://www.spielen-unter-linux.de



  • nvidia geht auf jeden fall besser, als ATI, aber irgendwie glaub ich das ich den Falschen treiber habe, denn auf der Seite von ATI steht:

    Optimized Software Support

    * ATI Catalyst™ driver update support
    * Microsoft® DirectX® 9.0 and OpenGL® drivers
    * Unified driver support or all ATI Radeon PCI Express discrete and integrated graphics products
    * Support for Microsoft® Windows® XP, Windows® 2000, and Linux

    http://ati.amd.com/products/Radeonxpress1100mobintel/specs.html
    diese daten lassen auf bessere leistung, als die gebotene Schließen.



  • Versuch ma fglrxinfo auf der Shell 😉

    Wenn du dann nicht sowas

    $ fglrxinfo
    display: :0.0  screen: 0
    OpenGL vendor string: Mesa project: www.mesa3d.org
    OpenGL renderer string: Mesa GLX Indirect
    OpenGL version string: 1.4 (2.1 Mesa 7.0.3)
    

    Bekommst hast du den AMD/ATI Treiber mit voller Leistung.

    (Bei mir geht's nicht da der Kernel-Wrapper nicht für 2.6.25.1 compiliert 😉 )



  • $ fglrxinfo
    display: :0.0  screen: 0
    OpenGL vendor string: ATI Technologies Inc.
    OpenGL renderer string: ATI Radeon Xpress Series
    OpenGL version string: 2.0.6473 (8.37.6)
    

    => Daraus schließen wir: ATI = Mist



  • langeweile schrieb:

    mad_martin schrieb:

    ... meint bei NVIDIA z.b., dass es keine 3-d Beschleunigung gibt. Und wenn es das auch bei ATI heißt (was ich vermute), dann liegt die Lösung ja auf der Hand, oder?

    Also ich spiel hier unter Linux auch 3D-Spiele (sowas wie Cod2 läuft sogar perfekt) unter Linux mit ner Geforce...
    ATI ist da schlechter dran... (noch?)

    => Infos: http://www.spielen-unter-linux.de

    Ja, wenn du die proprietären Treiber nimmst. Die werden aber nicht in der Distri mitgegeben, sondern die muss sich der geneigte User selbst installieren. Und wenn man das nicht weiß, wundert man sich trotz richtiger Erkennung der Karte durchs System über mangelnde Leistung 😉



  • Ja, das ist aber besser, als Garkein 3D ohne Proprientären Treiber, und mit Treiber extrem schlechte performance und kaum extention support, ich hab grad noch mal unter windows nehe lesson22 gestartet, und da sieht die Sache schon ganz anders aus:

    Renderer: ATI RADEON XPRESS 1100 x86/SSE2
      Vendor: ATI TECHNOLOGOES INC
     Version: 2.0.6645 WinXP Release
    
    insgesamt 91 extentions
    

    Das sieht ganz anders aus, aber unter Windows will ich nicht Programmieren.



  • Und wieso weigerst Du Dich nun weiterhin den Treiber zu installieren?



  • hellihjb schrieb:

    Und wieso weigerst Du Dich nun weiterhin den Treiber zu installieren?

    Also da drauf muss ich jetz nicht antworten oder?


Anmelden zum Antworten