Polygone direkt auf der GeForce rendern



  • Du willst die Maschinenbefehle der Grafikkarte um selber das Teil zu Programmieren?

    Also wenn nVidia den Maschinencode veröffentlicht hat findest du es nur auf deren Homepage.

    PS: Alleine die Dokumentation des Pentium umfasst mehrere tausend Seiten.



  • Ehhrm, wieviele Mannstunden wird schon an OpenGL (oder DX) und den entsprechenden Treibern programmiert? Und du denkst, du gehst daher und schreibst das eben mal noch schneller? Die Frage ist scheinbar nicht nur dumm gestellt.

    Bye, TGGC



  • TGGC schrieb:

    Ehhrm, wieviele Mannstunden wird schon an OpenGL (oder DX) und den entsprechenden Treibern programmiert? Und du denkst, du gehst daher und schreibst das eben mal noch schneller? Die Frage ist scheinbar nicht nur dumm gestellt.
    Bye, TGGC

    Naja, wenn's schon super-optimiert ist, umso besser! Dann hat sich die Frage erledigt.

    Ciao, pleaSure.



  • TGGC schrieb:

    Ehhrm, wieviele Mannstunden wird schon an OpenGL (oder DX) und den entsprechenden Treibern programmiert? Und du denkst, du gehst daher und schreibst das eben mal noch schneller? Die Frage ist scheinbar nicht nur dumm gestellt.

    Bye, TGGC

    Obwohl... mit 'nem eigenen Boot-Loader könnte man bestimmt noch 1 - 2 Frames reissen... 😉 😃



  • Was du meinst sind die ganzen herstellerspezifischen Extensions, die es aber nur unter OpenGL gibt.
    Dazu gehören, wie du auch schon gesagt hast, register combiner, texture shader, etc.

    Was das Rendering von Geometrie angeht gibt es eigentlich nur eine richtige NV-Extension, nämlich VAR (Vertex Array Range). Es gibt noch PDR (Pixel Data Range) zum Zurücklesen von Daten aus dem FB.
    VAR wird allerdings langsam durch VBO ersetzt, ist auf NV-Karten allerdings immer noch am schnellsten. Also wenn es wirklich schnell sein muss, dann mit VAR Speicher im GraKa-RAM allozieren, Vertexdaten hochladen (eventuelle Indices auch gleich mit) und fröhlich losrendern. Schneller geht es wirklich nicht mehr. Allerdings etwas Arbeit wegen der Synchronisierung.

    cya
    liquid



  • hallo pleasure,

    du meinst bestimmt Vertex shader u.ä..
    schau dir mal
    http://developer.nvidia.com/page/cg_main.html
    und
    http://www.cgshaders.org/
    an.
    Die idee dabei ist, das die GPU schneller Vektor Operationen machen kann als die CPU.
    Auf der GraKa wurde aber schon (seit ewigkeiten) gerendert.



  • Sgt. Nukem schrieb:

    Obwohl... mit 'nem eigenen Boot-Loader könnte man bestimmt noch 1 - 2 Frames reissen... 😉 😃

    Du meinst doch nicht ernsthaft, das man so DX schlägst?

    Bye, TGGC



  • TGGC schrieb:

    Sgt. Nukem schrieb:

    Obwohl... mit 'nem eigenen Boot-Loader könnte man bestimmt noch 1 - 2 Frames reissen... 😉 😃

    Du meinst doch nicht ernsthaft, das man so DX schlägst?

    Nee, DAS sicher nicht...!! 😃

    DirectX is un(s)top(p)able...!! 🤡 👍 👍 👍



  • Ich denke schon, besonders was Direct3D angeht. Überlegt man einmal, dass da ganze 3 Übersetzungsschichten am Werk sind (D3D7, D3D8, D3D9 Interfaces, D3D Thunk-Layer, UDA Layer) dann dürfte die direkte Programmierung der GPU doch erheblich schneller sein. Natürlich nur wenn mans richtig macht.

    cya
    liquid



  • Na dann mach mal.



  • Na dann mach mal.



  • Und man kann doch 2 Beiträge kurz hinternander posten.



  • Gleich zwei mal? Ich denke einmal reicht doch wirklich, wir wollens doch nicht übertreiben, ne?! 😃

    cya
    liquid



  • Aber keiner kann mit der D3DX-Lib so schnell Matrizen zusammenmultiplizieren wie DirectX!! Selbst OpenGL nicht!! 🤡 :p



  • Sgt. Nukem schrieb:

    Aber keiner kann mit der D3DX-Lib so schnell Matrizen zusammenmultiplizieren wie DirectX!! Selbst OpenGL nicht!! 🤡 :p

    Wieso nicht? Mit Assemlber optimierten MMX, SSE, SSE2 und/oder 3DNow! code geht das bestimmt genau so gut 🙂

    Und wenn das doch genau so schnell ist oder schneller (kann sein muss net!) dann hat man ggf. ne kleinere Exe und viel draus gelernt 🙂



  • Die D3DX-Lib ist schnell. Ich könnte mir eigentlich nur die Optimierung durch direktes eingeben in der Matrix vorstellen.

    Also statt z.B. eine Funktion aufzurufen so zu machen.

    m_matView._41 = 10.0f; 
    m_matView._42 = 12.5f; 
    m_matView._43 = 1.7f;
    m_lpDevice->SetTransform(D3DTRANSFORMSTATE_WORLD,&m_matView);
    


  • LiquidAcid schrieb:

    Gleich zwei mal? Ich denke einmal reicht doch wirklich, wir wollens doch nicht übertreiben, ne?!

    Stimmt, wenn du einen Bootloader schreibst, reichts.



  • Hatte ich erwähnt, dass ich das machen wollte? Lese/Rechtschreibschwäche?

    cya
    liquid



  • LiquidAcid schrieb:

    Hatte ich erwähnt, dass ich das machen wollte? Lese/Rechtschreibschwäche?

    cya
    liquid

    Hast du nicht erwähnt. Merk dir doch einfach, was du geschrieben hast, dann musst du trotz Lese/Rechtschreibschwäche nicht nachfragen!



  • Von Rhetorik keinen Plan was? *g*


Anmelden zum Antworten