Suche simple Grafik- u. Sound-API.



  • [/quote]eine bibliothek um einzelne pixel zeichnen zu können? sfml.[/quote]
    Schon probiert ist aber aber meines wissens nach keine um Frequenztöne zu erzeugen.
    In der WinApi geht das ( Tutorial: http://www.youtube.com/watch?v=j9fZrYKTJ0Y), aber ich schrieb ja nicht um sonst "möglichst multiplattformfähig" 😉

    von diesen "wirklich effizienten möglichkeiten" würde ich zu gerne mal hören, lol. sind dir octrees ein begriff

    1. Sei bitte nicht so voreingenommen 😮
    2. "octrees" war mir bis ich eben googelte 😉 kein Begriff,
    aber auf das Konzept kam ich auch schon ist aber im Verglech zu meinem
    jetzigen 🕶 (wenn Konzeppt richtig verstanden 😉 )zu uneffizient.

    lauft der render-vorgang komplett auf der cpu
    

    Graka meines wissens nach absolut nicht notwendig, aber vielleicht optional 😋 , mal schauen!

    ist dein algorithmus parallelisierbar?

    Wenn du damit meinst dass paralell auch Physik, Animation, Spielelogik u. co. berechnet werden können, dann ja!
    Aber Physik, Animation, Spielelogik sind in der Darstellung selbstverständlich nicht unlimitierbars, so dass bei zu viel Nebenzeugs die FPS auch einbrechen können.



  • sC++k schrieb:

    von diesen "wirklich effizienten möglichkeiten" würde ich zu gerne mal hören, lol. sind dir octrees ein begriff

    1. Sei bitte nicht so voreingenommen 😮
    2. "octrees" war mir bis ich eben googelte 😉 kein Begriff,
    aber auf das Konzept kam ich auch schon ist aber im Verglech zu meinem
    jetzigen 🕶 (wenn Konzeppt richtig verstanden 😉 )zu uneffizient.

    Wie genau funktioniert denn deine effiziente Komprimierung? Hast du vor, diese zu veröffentlichen? Ich bin mir sicher, eine Menge Leute (mich eingeschlossen) würden sich dafür interessieren... 😉

    sC++k schrieb:

    ist dein algorithmus parallelisierbar?

    Wenn du damit meinst dass paralell auch Physik, Animation, Spielelogik u. co. berechnet werden können, dann ja!
    Aber Physik, Animation, Spielelogik sind in der Darstellung selbstverständlich nicht unlimitierbars, so dass bei zu viel Nebenzeugs die FPS auch einbrechen können.

    Er meint wohl, ob dein Rendering Algorithmus an sich parallelisierbar ist, denn das ist der Schlüssel zu Performance...



  • dot schrieb:

    sC++k schrieb:

    dot schrieb:

    sC++k schrieb:

    dot schrieb:

    Das große mit Voxeldaten ist, dass dir selbst bei trivialen Modellen sofort der Speicher ausgeht, wenn du nicht irgendwelche schlauen Methoden zur Komprimierung hast...

    "Komprimierung" in Bezug worauf?

    Auf deine Voxeldaten? Ein einziges 512³ RGB Volumen braucht unkomprimiert bereits 384 MB...

    "512³ RGB Volumen"? Meinst du damit was theorisch 512 Texturen mit einer Aufflösung von 512&515 Pixeln in Voxeln umgerechnet sind, wenn ja dann wären
    384 MB doch recht akzeptabel.
    Und ja, ich glaube ich hab eine recht vernünftige Methode 🕶 !

    Ja sowas mein ich und wenn du das für akzeptabel hältst, dann hast du nicht gründlich genug drüber nachgedacht... 😉

    Na ja, man könnte mit etwa einer Millionen Voxels schon circa ein kleines grafisch anspruchsvolles Spiel machen. Kommt natürlich drauf an welches 😉 ,
    aber auch relativ detailierte große Games sollten möglich sein, da ja keine Texturen mehr in den Ram oder in den Code müssen denk' ich sollte sich das im Vergleich zur Vertex-UV-Map-basierten "old-school-GE" im Speicheranspruch ungefehr auf das gleiche Resultat führen.



  • junge junge du versuchst hier irgendwas hinzubekommen was selbst John Carmack nicht schafft. du wirst nie im leben 60 fps damit hinbekommen



  • Dir ist schon klar, dass bei einer Auflösung von 1920×1080 allein der Bildschirm mehr als 2 Millionen Pixel hat!? Außerdem kannst du so nicht rechnen, zumindest nicht, wenn wir von Voxeln reden. Vielleicht meinst du ja etwas anders, wenn du von "Voxel" sprichst, normalerweise versteht man darunter jedenfalls ein Sample eines dreidimensionalen Signals. Eine Million Voxel ist gerade mal ein 100×100×100 Würfel...

    Aber was auch immer, ich will dich nicht länger mit dummen Fragen davon abhalten, die Computergrafik zu revolutionieren: Schau dir vielleicht mal Pixeltoaster an...



  • ..."an sich" parallelisierbar... ...Schlüssel zu Performance...

    Was heißt "an sich". Bitte konkretisieren!

    Engine veröffentlchen?
    

    Sicher, wenn sie was wird :p. Ich hab aber noch viel zu tun in Bezug auf den eingebauten Music Sequenzer u. gewisse Algoritmen für Physik u. co,
    also kann ich jetzt erstmal auch nichts weiter versprechen.



  • sC++k schrieb:

    ..."an sich" parallelisierbar... ...Schlüssel zu Performance...

    Was heißt "an sich". Bitte konkretisieren!

    Das heißt konkret, dass der Renderingvorgang auf sehr viele Prozessoren verteilt werden kann. Wenn dein Algorithmus das nicht erlaubt, dann ist er zumindest nicht sehr zukunftsträchtig...

    Vielleicht willst du ja auch mal einen Blick auf das werfen: http://www.atomontage.com/



  • Vielleicht meinst du ja etwas anders, wenn du von "Voxel" sprichst, normalerweise versteht man darunter jedenfalls ein Sample eines dreidimensionalen Signals. Eine Million Voxel ist gerade mal ein 100×100×100 Würfel...
    

    Meinst du damit dass Voxels "in" dem Würfel drin sind wo man sie nicht sieht.
    Ansonsten hängt es ja davon man ab wie groß der Würfel ist und damit einhergehen auch die Detailiertheit. Und die Verhältnisse somit ja selbst einstellbar, so dass ein Würfel praktisch schon ab 26 Voxel(EDIT!) gezeichnet werden kann(in der kleinstmöglich Einheit) u. dieser trotzdem nah von der Cam herangezoomt werden kann, durch spezziele Algoritmen eingenommen Auflösungs-simultane Licht u. Schatten-Qualität.

    Allgemeiner Nachteil: Umso großer Objekte sind, umso mehr Voxels werden auch benötigt, also kann ein Objekt nicht höher aufgelößt sein als das andere in einer Szene, weil die Verhältnisse sonst nicht mehr stimmen würden, was bedeutet, dass man sich auf eine mehr o. minder einheitliche Voxelauflösung einigen müsste.
    Ob ich was anderes meine als Voxels ist/bleibt vielleicht Interpretationssache 😉

    Aber was auch immer, ich will dich nicht länger mit dummen Fragen davon abhalten, die Computergrafik zu revolutionieren: Schau dir vielleicht mal Pixeltoaster an...
    

    Sieht ganz interesannt aus, nur gibt's scheinbar noch keine Wiki dazu u. scheint entsprechend der Bugreport noch relativ verbuggt zu sein!



  • Das heißt konkret, dass der Renderingvorgang auf sehr viele Prozessoren verteilt werden kann. Wenn dein Algorithmus das nicht erlaubt, dann ist er zumindest nicht sehr zukunftsträchtig...
    

    Und wie kann man darauf Einfluß nehmen, was auf welchem Prozzesorkern berechnet wird???

    Vielleicht willst du ja auch mal einen Blick auf das werfen: http://www.atomontage.com/
    

    Danke, sehr interessant! 😋

    Themawiedereinleitung: Kennt denn nun jemand von euch eine Api/GUI, die Frequenztöne erzeugen kann? 🙄



  • hustbaer schrieb:

    sC++k schrieb:

    hustbaer schrieb:

    sC++k schrieb:

    - ...wenn nicht sogar absolut systemunabhängig,...

    Das ist kein Satz, da fehlt was. Das was du suchst gibt's aber nicht (komplett systemunabhängig).

    Verstehe, dann halt möglichst multiplattformfähig.
    Aber gibt es denn keinen Maschinencode(-Sprache) der auf jeder Maschine läuft!
    Zum Satzbau:
    Ich weiß, klingt etwas wirr, ist aber glaub' ich tatsächlich einer,
    wenn auch ein fragwürdiger!

    Nein, ist es sicher nicht.
    "Wenn nicht sogar" bezieht sich auf irgendwas vorher. Da ist aber nix vorher.
    "Schnell, wenn nicht sogar der Schnellste" macht Sinn. "Portierbar, wenn nicht sogar systemunabhängig" hätte auch Sinn gemacht. Einfach nur "wenn nicht sogar systemunabhängig" ist einfach nur Unsinn.

    sC++k schrieb:

    ⚠
    Ach, komm'! Bist du schlecht drauf gewesen als du das geschrieben hast o. warste verträumt? 🙄
    Ist doch offensichtlich dass diese imaginäre Funktion einen Pixel auf dem Screen erzeugen soll
    und die dadrüber einen Ton auf Wiedergabegerät. 💡

    Und ab jetzt war klar dass du ein arroganter Idiot/Troll bist.

    Du hast keinen Plan von dem was du schreibst. Daher denke ich, wäre es günstig wenn du einfach in ganzen Deutschen Sätzen hinschreiben würdest was du haben willst. Statt irgendwelche erfundenen Funktionsnamen, die wohl deiner Meinung nach aussagekräftig sein sollen.

    Statt dessen beleibigst du aber Leute die nachfragen oder dir irgendwas erklären wollen, oder machst dich über sie lustig.

    Auch gut. Viel Erfolg in deinem restlichen Leben dann noch!

    Reg' dich mal ab! U. übrigens der einzigste der offensichtlich beleidigend wird bist du, mein Lieber. Solche rauen Vorwürfe.
    Falls du dich von meinen ehrlichen unbös gemeinten "Bedauersmiliekommentaren" persönlich beleidigt fühlst ist das nicht mein emotionales Problem, sondern deines.
    Falls es dir so sehr wehtat entschuldige ich mich sogar. Und ich wünsche dir auch das Beste für dein weiteres Leben, obwohl ich das im Gegensatz zur dir, nicht "scheinbar" ironisch meine! 🙄
    PS:
    Jeder von uns ist solange er nicht vollkommen ist ein wenig arogant,
    eher wahrscheinlich ist meist dass der jenige arogant ist, der weiß machen
    will dass jede Kleinigkeit als signifikant arogant öffentlich zu benennen ist.
    Und nein das hier grad ist keine Beleidigung, sondern eine "Weißsagung". 🙄



  • ps.: hast du zufällig etwas mit dem forumsnutzer "lymogry" gemeinsam?
    

    Nein, wieso?

    all deine if-statements sind redunant da der boolsche wert immer true ist. wird noch lustig hier.
    

    "Redundant" im Sinne von Effizienz o. Uneffizienz? 🙂



  • sC++k schrieb:

    ps.: hast du zufällig etwas mit dem forumsnutzer "lymogry" gemeinsam?
    

    Nein, wieso?

    weil ihr beide die art habt, unendlich viele emoticons in den text zu schreiben.

    sC++k schrieb:

    all deine if-statements sind redunant da der boolsche wert immer true ist. wird noch lustig hier.
    

    "Redundant" im Sinne von Effizienz o. Uneffizienz? 🙂

    da kann ich dir lediglich ein wörterbuch deiner wahl empfehlen:
    http://www.duden.de/ -> "überflüssig"
    aber ich will mal nicht so sein:

    // Aus deinem Code in http://www.c-plusplus.net/forum/322713 :
        if(clearalgo = 3) 
        { 
            system("cls"); 
        }
    ...
          if(verlängerung = 1){ 
                                Beep(End0_or_Frequenz,5000);  } 
    
    // Die Bedingungen sind IMMER erfüllt, daher kannst du gleich vor dem if-Statement die Zuweisung machen und dann den true-Block hinschreiben.
    // Etwa so:
    clearalgo = 3;
    system("cls"); // Das hier ist übrigens: "nicht sogar absolut systemunabhängig"
    ...
    verlängerung = 1; // Dir ist schon bewusst, dass das nicht kompilieren wird?
    Beep(End0_or_Frequenz,5000);
    

    sC++k schrieb:

    Themawiedereinleitung: Kennt denn nun jemand von euch eine Api/GUI, die Frequenztöne erzeugen kann? 🙄

    lol, dir ist schon bewusst, was eine GUI ist?
    ausserdem: was hast du damit vor? 44100 mal in der sekunde die frequenz und die amplitude ändern bis dir einfällt, dass du die daten einfach in einen buffer schreiben kannst?

    edit:
    ich denke, du solltest dir erst einmal die basics von c++ anschauen bevor du das hier versuchst (egal wie sehr du dir einredest, dass dein algorithmus perfekt ist, er ist es nicht). dann lernst du auch int-to-bool-konversionen, namensregeln und den unterschied zwischen vergleichen und zuweisungen kennen.



  • edit:
    ich denke, du solltest dir erst einmal die basics von c++ anschauen bevor du das hier versuchst (egal wie sehr du dir einredest, dass dein algorithmus perfekt ist, er ist es nicht). dann lernst du auch int-to-bool-konversionen, namensregeln und den unterschied zwischen vergleichen und zuweisungen kennen.

    Ich kenne den Unterschied! War grad auch geschockt was ich da geschrieben hatte
    Hätte statt "=", "==" schreiben wollen.
    War mir da schon klar, aber hatte ich vergessen, genau wie das "int" vor "main()" 😡
    Hab in dem halben Jahr in dem ich mich mit's Coden beschäftigte halt wirklich nur 4-5 kleine Skripts geschrieben,
    weshalb das halt noch nicht so im Blut war, schätz' ich.
    War außerdem ziemlich fragwürdig geschrieben, ich weiß.
    Hier hab ich grad noch mal'n Edit gemacht: http://www.c-plusplus.net/forum/p2375439#2375439
    Sorry, dass du dir grad grundlos das Maul zereißen musstest! 😞
    Und nein, ich denke nicht dass mein Algo perfekt ist, sondern nur vom Prinzip her vielversprechend!

    lol, dir ist schon bewusst, was eine GUI ist?
    

    Jetzt schon! Sorry, dachte das wär das gleiche wie API (Synonym),
    weil ich den im Kontext dessen gelesen hab hat es sich wohl bisschen zu sehr
    ins Unterbewusstsein eingenistet, wollte auch erst garnicht GUI schreiben war so'n spontaner Tick. 😋



  • sC++k schrieb:

    edit:
    ich denke, du solltest dir erst einmal die basics von c++ anschauen bevor du das hier versuchst (egal wie sehr du dir einredest, dass dein algorithmus perfekt ist, er ist es nicht). dann lernst du auch int-to-bool-konversionen, namensregeln und den unterschied zwischen vergleichen und zuweisungen kennen.

    Ich kenne den Unterschied! War grad auch geschockt was ich da geschrieben hatte
    Hätte statt "=", "==" schreiben wollen.
    War mir da schon klar, aber hatte ich vergessen, genau wie das "int" vor "main()" 😡
    Hab in dem halben Jahr in dem ich mich mit's Coden beschäftigte halt wirklich nur 4-5 kleine Skripts geschrieben,
    weshalb das halt noch nicht so im Blut war, schätz' ich.
    War außerdem ziemlich fragwürdig geschrieben, ich weiß.
    Hier hab ich grad noch mal'n Edit gemacht: http://www.c-plusplus.net/forum/p2375439#2375439
    Sorry, dass du dir grad grundlos das Maul zereißen musstest! 😞
    Und nein, ich denke nicht dass mein Algo perfekt ist, sondern nur vom Prinzip her vielversprechend!

    gut, nun musst du nur noch lernen wie bezeichner aussehen dürfen, wie man spät definiert, was std::endl wirklich ist und wie man leserlich einrückt, dann ist dein 26 zeilen programm schon fast durchschnittlich.



  • gut, nun musst du nur noch lernen wie bezeichner aussehen dürfen,
    

    Welchen Fehler hab ich da denn gemacht?

    ...wie man spät definiert, was std::endl wirklich ist..
    

    1. "spät definiert"?
    2. Zeilenumbruchsbefehl (ein grundsätzlich reservierter Grundbezeichner aus dem Namensraum "::std")



  • sC++k schrieb:

    gut, nun musst du nur noch lernen wie bezeichner aussehen dürfen,
    

    Welchen Fehler hab da denn gemacht?

    du hast versucht eine variable "verlängerung" zu nennen.

    sC++k schrieb:

    ...wie man spät definiert, was std::endl wirklich ist..
    

    1. "spät definiert"?
    2. Zeilenumbruchsbefehl (ein grundsätzlich reservierter Grundbezeichner aus dem Namensraum "::std")

    1. man definiert seine variablen erst genau da wo man sie auch tatsächlich braucht. "verlängerung" brauchst du erst bei zeile 18, definierst die variable aber schon bei zeile 8.

    2. nein, eben nicht. " << std::endl " bewirkt das selbe wie " << '\n' << std::flush ". du willst aber nicht flushen. ausserdem ist das kein "reservierter grundbezeichner". ich darf int endl; schreiben ohne probleme zu bekommen. es ist ein stream-manipulator im namensbereich std. der namensbereich std ist allgemein im c++-standard geschützt (bis auf einige ausnahmen, wie das komplette template-spezialisieren von std::swap).



  • Eieieiei .... da fehlen aber noch ein paar Jahre Lernzeit bis Du einen "performancestarken, effizienten Music Sequenzer u, Game Engine" angehen kannst.



  • lolalter schrieb:

    Eieieiei .... da fehlen aber noch ein paar Jahre Lernzeit bis Du einen "performancestarken, effizienten Music Sequenzer u, Game Engine" angehen kannst.

    Das würde natürlich fast jeder im Affekt sagen, der selbst jahrelange Erfahrung hat.
    Alles was ich darüber bisher gelernt hab ist dass es beim Programmieren um logische Konzepte u. Algoritmen geht und noch ein bisschen um das Prinzip des Programmierens allgemein. Inwiefern gewisse Librarys wie STL o. so vernetzt sind
    u. in welchen Namensraum irgendetwas steht hilft mir nicht dabei geniale Algoritmen zu proggen, alles was ich lediglich verstehen muss ist wie ich eine Funktion benutze. Genau wie es dem Gamer wenig bringt zu wissen wie das Spiel programmiert wurde um das Spiel gut zu spielen. Er muss nur wissen was im Spiel möglich ist u. was nicht.



  • asfdlol schrieb:

    sC++k schrieb:

    gut, nun musst du nur noch lernen wie bezeichner aussehen dürfen,
    

    Welchen Fehler hab da denn gemacht?

    du hast versucht eine variable "verlängerung" zu nennen.

    sC++k schrieb:

    ...wie man spät definiert, was std::endl wirklich ist..
    

    1. "spät definiert"?
    2. Zeilenumbruchsbefehl (ein grundsätzlich reservierter Grundbezeichner aus dem Namensraum "::std")

    1. man definiert seine variablen erst genau da wo man sie auch tatsächlich braucht. "verlängerung" brauchst du erst bei zeile 18, definierst die variable aber schon bei zeile 8.

    2. nein, eben nicht. " << std::endl " bewirkt das selbe wie " << '\n' << std::flush ". du willst aber nicht flushen. ausserdem ist das kein "reservierter grundbezeichner". ich darf int endl; schreiben ohne probleme zu bekommen. es ist ein stream-manipulator im namensbereich std. der namensbereich std ist allgemein im c++-standard geschützt (bis auf einige ausnahmen, wie das komplette template-spezialisieren von std::swap).

    Danke für den Hinweis! :p
    Und was macht "int endl"?



  • sC++k schrieb:

    Und was macht "int endl"?

    Definiert eine Variable vom Tzp int mit Namen endl.

    PS: Bitte nutze [ /quote ] zum Zitieren.


Anmelden zum Antworten