Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

21

06.09.2013, 06:40

Bin ich gespannt :D

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

22

07.09.2013, 12:38

Wie schon geschrieben ist die TriBase Engine eigentlich für Lernzwecke gedacht. Soweit ich mich erinnere weißt David im Buch selbst darauf hin, später auf andere Engines umzusteigen. Die Engine ist zudem sehr Low Level. Das macht in dem Fall ja auch sinn, da du DirectX und die Arbeit damit lernen möchtest. Du kannst natürlich auch damit arbeiten (manche schreiben sich ihre Sachen ja sogar direkt selbst), musst du aber nicht. Wenn du nun die Engine wechselst heißt dass nicht unbedingt, dass deine Arbeit danach auf dem gleichen Level ansetzt. Mit der richtigen Engine kannst du dich viel mehr auf die Logik deines Spiels stürzen und über die technischen Details dahinter zumindest weniger nachdenken. Da musst du jetzt für dich entscheiden was du grad möchtest. Für C++ kenn ich spontan Ogre3D und Irrlicht. Diese beiden nehmen dir zumindest Teile ab. So ist Ogre selbst nur für die Anzeige zuständig und Irrlicht liefert von Haus aus noch ein wenig mehr mit. Eine ganz andere Nummer ist zum Beispiel Unity3D. Zwar nicht C++, aber dafür viel weiter oben angesetzt. Ist auch mal einen Blick wert.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

23

09.09.2013, 18:32

So, die Linkerprobleme hab ich schnell wegbekommen (hatte vergessen ein paar TRIBASE_APIs vor die Funktionsdeklarationen zu setzen). Aber jetzt wirds echt knifflig. Das Programm stürzt beim Starten mit der Fehlermeldung "unbehandelte Ausnahme" ab, und zwar bei der Erstellung von mehreren Puffern mittels Swapchain und dx11. Das is auf den ersten Blick auch nich verwunderlich, weil die Tribase ja ihrerseits schon einen Vertex-und Indexbuffer mit dx9 erstellt. Lasse ich die Erstellung der dx11-Puffer einfach weg kommt eine Fehlermeldung, dass die Funktion D3DX11CreateShaderResourceViewFromFile( d3d11Device, fileNamePath.c_str(),NULL, NULL, &tempMeshSRV, NULL ) fehlgeschlagen ist. Aber so ganz versteh ich nich warum. Das hat doch nix mit den vorher fehlgeschlagenen Puffern zu tun, oder? Weil die Funktion doch nur nen d3d11Device-Zeiger benötigt und der is doch schon vorher mittels ID3D11Device* d3d11Device; generiert worden. Oder kann eine d3d11device-Schnittstelle gar nicht neben einer direct3d9Device-Schnittstelle existieren? Ich glaub das wird für mich als Anfänger ein wenig zu kompliziert...hat sich von euch denn noch niemand den Code angeschaut? ;)
Ansonsten werd ich wohl notgedrungen auf ne andre Engine umsteigen müssen, eigtl. schade. (Unity3d sieht wirklich gut aber auch sehr kompliziert aus, danke für den Tipp :))

patrick246

Treue Seele

Beiträge: 328

Wohnort: nahe Heilbronn/BW

Beruf: TG Profil Informatik-Schüler

  • Private Nachricht senden

24

09.09.2013, 21:43

Wenn du einfach ID3D11Device* device; schreibst, hast du einen Pointer, dem kein Speicherbereich zugewiesen wurde. Dann kracht es.

25

10.09.2013, 23:59

Wenn du einfach ID3D11Device* device; schreibst, hast du einen Pointer, dem kein Speicherbereich zugewiesen wurde.
Weiß ich auch dass *d3ddevice nur ein Zeiger is. Die deviceschnittstelle wurde schon vorher mit D3D11CreateDeviceAndSwapChain erstellt. Für die Funktion D3DX11CreateShaderResourceViewFromFile wird ja auch nur ein Pointer auf eine deviceschnittstelle erwartet. Trotzdem funktioniert sie irgendwie nich in Kombination mit der Tribase Engine...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

26

11.09.2013, 00:09

Wie sollte sie auch "in Kombination mit der TriBase Engine funktionieren"!?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

27

11.09.2013, 10:15

Du solltest erst einmal die absoluten Grundlagen von C/C++ lernen - mir scheint, als sei da überhaupt kein Vorwissen vorhanden.

28

12.09.2013, 18:42

:hmm:
Und mir scheint, dass der Herr wohl schlecht geschlafen hat und seinen Frust an Anfängern auslassen muss, indem er ihnen einfach an den Kopf wirft, dass sie von nichts ne Ahnung haben und am besten wieder bei NULL anfangen sollen. Und dass auch noch ohne jegliche Begründung!? Vllt sollte sich Mr. David lieber ein paar Gedanken zu seinen Umgangsformen machen, als Threads mit sinnlosen Kommentaren zu füllen. Und das auch noch als Autor ;)

Da komme ich lieber noch mal zu meiner Frage zurück...Ist es also nicht möglich, die Grafikkarte sowohl mit Directx9 als auch mit DirectX11 in einem Programm anzusprechen? Zumindest sieht es nicht danach aus. Allerdings könnte ich theoretisch auch nen andren Fehler eingebaut haben...man weiß ja nie ;)

FSA

Community-Fossil

  • Private Nachricht senden

29

12.09.2013, 18:47

Ohne Code kann ich dir leider nicht helfen.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

30

12.09.2013, 19:14

Da komme ich lieber noch mal zu meiner Frage zurück...Ist es also nicht möglich, die Grafikkarte sowohl mit Directx9 als auch mit DirectX11 in einem Programm anzusprechen? Zumindest sieht es nicht danach aus. Allerdings könnte ich theoretisch auch nen andren Fehler eingebaut haben...man weiß ja nie ;)

Es ist nicht gänzlich unmöglich, aber nicht so wie du das versuchst; du müsstest zwei Devices erzeugen und dann über DXGI Resource Sharing betreiben. In deinem Fall ist das garantiert nicht sinnvoll...

Und man muss schon sagen, dass die Art und Weise, wie du an die Sache herangehst, doch den Eindruck vermittelt, dass es dir noch an gewissen, wesentlichen Grundlagen mangelt; Davids Kommentar ist vielleicht knapp formuliert, aber, so wie ich ihn kenne, sicherlich gut gemeint... ;)

Du solltest dich fragen, was genau du erreichen willst. Wenn es dir darum geht, mit möglichst geringem Aufwand deine Spielidee umzusetzen, dann solltest du ein fertiges Toolkit wie z.B. Unity oder das UDK verwenden. Die TriBase Engine ist dafür nicht gedacht und daher auch nicht besonders gut dafür geeignet. Wenn es dir um die technischen Hintergründe geht, dann solltest du lernen, wie diese Sache mit der Animation funktioniert, damit du sie selbst bauen kannst. Einfach Code, den du irgendwo gefunden hast, in die TriBase Engine reinpasten wird, wie bereits anfangs gesagt, jedenfalls nicht funktionieren...

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »dot« (12.09.2013, 22:04)


Werbeanzeige