Suchergebnisse
Suchergebnisse 1-20 von insgesamt 632.
Von mir immer Finde es persönlich einfacher sowas als Code auszudrücken bzw zu verstehen.
Ist eigentlich recht einfach, nur ein wenig Trigonometrie. In Pseudocode: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Point[] GenSphere(float radius, int numSlices, int numStacks) { Point[] points; points.add(0, radius, 0); // North pole for (int i = 1; i < numStacks; i++) { float theta = i * PI / numStacks; for (int k = 0; k < numSlices; k++) { float phi = 2 * k * PI / numSlices; points.add( cos(phi) * sin(theta) * radius, cos(theta) * radius, sin(phi) * sin(theta) * radius); } } po...
Ich hab das Problem doch schon geschildert. Das return fehlt.
1. Die Destruktoren müssen definiert werden, auch wenn sie pure virtual sind. Der Grund ist ganz einfach, dass die auch aufgerufen werden wenn ein Objekt zerstört wird. 2. Bist du sicher, dass du operator= als virtual deklaieren willst? Ich denke nicht 3. operator= muss einen Rückgabewert haben (das Problem von dir)
@Bambi & BlueCobold: Könntet ihr evtl endlich mal aufhören jeden Thread hier voll zuspammen ohne überhaupt was sinnvolles zum Topic zu sagen? Nervt echt OT: Finde VSCode bis jetzt ganz cool. Ist auf jeden Fall schneller als Atom bei mir auf dem Notebook. Bin mal gespannt wie lange man noch auf IntelliSense für C++ (und evtl sogar Java?) warten muss. Auf meinem Notebook bevorzuge ich leichte Editoren gegenüber großen, überladenden IDEs (looking at you Eclipse). Ansonsten könnte MS auch bei der In...
Immer wieder schön, wie ihr es schafft eine simple Frage in eine Diskussion umzuformen. Finde ich ziemlich lächerlich hier wieder die alte Direct3D vs OpenGL Schiene zu fahren ... Wenn ihr Offtopc gehen wollt, dann tut das im Offtopic-Bereich An den Threadersteller: Lern einfach was du willst, man kann nie zu viele APIs kennen. Die Theorie bleibt sowieso gleich. Wenn du also DirectX interessant findest, dann schau es dir doch mal an. Lass dich nicht von diesen Religionskämpfen beeinflussen
Zitat von »Bambi« Welches mir besonders gefiel war "Spieleprgrammierung mit DirectX 11 und C++" von Susanne Wigard. Alleine die durchweg schlechten Rezensionen auf Amazon würden mich persönlich vom Kauf hindern... Gute Bücher über 2D-Grafik mit Direct3D kenne ich nicht. Mag aber daran liegen, dass das meiste, was mit Direct3D gemacht wird, eben 3D ist. Für 2D muss eigentlich kaum was gemacht werden. Ein Device und Swapchain erstellen und man kann auch schon mit dem DirectXTK die ersten Bilder a...
Zitat von »David_pb« Eine der Grundbedingungen ist viel Hintergrundwissen, z.B. wie eine GPU arbeitet. Gibt es da eigentlich gute Quellen um sowas zu lernen oder wie geht man an sowas ran? Grundkenntnisse haben die meisten hier denke ich auch, aber eben nicht dieses tiefe Verständnis, was ja jetzt notwendig ist.
Jo stimmt hast recht, hab den Code nicht getestet. War nur um zu Zeigen, wie einfach das alles mit den neuen Features geht.
Zitat von »Schorsch« Mit C++ 11 gibt es doch auch neue Funktionszeiger, wenn man die so nennen möchte. Ich meine std::function wäre das, bin da aber absolut nicht im Thema. Ansonsten wäre Observer sicherlich eine Möglichkeit wobei hier ein wenig mehr Overhead im Spiel ist. Siehe mein Post. Hab ich alles drinnen...
Wo genau war denn das Problem in der ersten Version? Sollte so doch funktionieren. Wenn du einen halbwegs neuen Compiler verwendest (Visual Studio 2013 hat einen), dann kannst du auch das Observer-Pattern recht cool umsetzen: C-/C++-Quelltext 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 class Button { using ListenerType = std::function<void()>; public: void OnClick() { for (const auto& listener : listeners) { listener(); } } unsigned int AddListener(const ListenerTy...
Jo ich kann eXpl0it3r nur zustimmen, die Videos sind grauenhaft bzw. der Code. Überall new und delete Und dazu noch dieses ganze auf nullptr gesetze ... Tu dir einen Gefallen und übernehme nicht seinen Codestil.
Ich würde dir empfehlen einfach die simpelste Lösung zu nehmen. Also erst mal gar kein ECS oder sowas. Sieht nämlich so aus als wüsstest du gar nicht, was genau du willst. Viele Design-Pattern machen oft nur unnötigen Overhead, wenn sie eigentlich nicht benötigt werden. ECS ist imho eines davon. Du wirst schon merken wenn du refactorn musst und dann kann man sich überlegen was man da so für Pattern nehmen kann.
Ich bin auch wegen des Singletons schockiert
Du musst die Kameraposition einfach mit dem Vektor addieren, der in die Blickrichtung zeigt. Normalerweise hat man einen Forward-, Right und Up-Vector. Fürs seitliche Bewegen nimmt man dann eben den Right-Vector (oder eben Left-Vector, wenn man sowas hat. Geht natürlich auch).
Krass seid ihr alle schnell Ich komme nicht über 58 WPM mit 2 Fehlern. Aber die wahre Frage ist, könnt ihr auch so schnell Code schreiben?
Der Fehler war in der Matrix (pun intended ). Die Matrix sieht so aus: § \begin{pmatrix} \frac{2*z_n}{w} & 0 & 0 & 0 \\ 0 & \frac{2*z_n}{h} & 0 & 0 \\ 0 & 0 & \frac{z_f}{z_f-z_n} & 1 \\ 0 & 0 & \frac{z_n*z_f}{z_n-z_f} & 0 \end{pmatrix} § Wenn du §z_n = 0§ hast ist §a_{1,1} = a_{2,2} = 0§. Anders gesagt du skalierst alles mal 0.
Zitat von »LInsoDeTeh« Bei Matrizen, stehen in der Multiplikation die, die zuerst ausgeführt werden, ganz rechts. Das stimmt nicht so ganz. Nur wenn die Matrizen Columnmajor sind. Bei D3D ist es üblich Rowmajor Matrizen zu haben, dann wäre es World * View * Proj. Zitat von »LInsoDeTeh« Und zuletzt verstehe ich auch nicht, warum du WorldViewProject.Transpose(); machst. Das macht er denke ich, da HLSL standardmäßig mit Columnmajor arbeitet. Alternativ kann man im HLSL-Code auch row_major float4x4...
Jo, so ist es. Wie von den anderen bereits erwähnt, werden die Vertizes in Modelspace (auch Objectspace genannt). Und dann schiebt man die einfach an die gewünschte Stelle in der Welt. Kann man natürlich auch anders machen, aber in der Spieleprogrammierung ist das wohl das üblichste.