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

11

17.01.2010, 08:40

@Stazer http://www.ogre3d.org/wiki/index.php/Basic_Tutorial_2 Das 2. Tut aus der Wiki.

Ja, jetzt komm ich auch in den Genuss des Logs. ;)

Die Möglichkeit hier im Forum zu Fragen, werd ich natürlich wahrnehmen, aber noch hat sich kein Problem angebaht. (Ich bin schon begeistert von OGRE ;) )


EDIT: Schon geschehen:

C-/C++-Quelltext

1
2
3
4
5
6
7
        Ogre::Entity* ent = mSceneMgr->createEntity ("Test", "Diamond.mesh");
        Ogre::SceneNode* node = mSceneMgr->getRootSceneNode()->createChildSceneNode ("noder");
        node->attachObject (ent);
        node->scale (Ogre::Vector3 (3000.0f));
        node->yaw (Ogre::Degree (50.0f));
        ent->setCastShadows (true);
        mSceneMgr->setShadowTechnique (Ogre::SHADOWTYPE_STENCIL_ADDITIVE);

Bei diesem Code-Snipped funkt alles einwandfrei, bis zu ent->setCastShadows (). In den Beiden Zeilen wirft er mir eine "Cannot locate Resource Group "for Resource" ... Exception.

Das Log sagt an de rEnnsprechenden Stelle

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
09:17:30: Finished parsing scripts for resource group General
09:17:30: Parsing scripts for resource group Internal
09:17:30: Finished parsing scripts for resource group Internal
09:17:30: Mesh: Loading Diamond.mesh.
09:17:30: Can't assign material diamond to SubEntity of Test because this Material does not exist. Have you forgotten to define it in a .material script?
09:17:30: *** Initializing OIS ***
09:17:30: OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called '' for resource '' in ResourceGroupManager::openResource at ..\src\OgreResourceGroupManager.cpp (line 695)
09:17:35: *-*-* OGRE Shutdown
09:17:35: Unregistering ResourceManager for type Compositor
09:17:35: Unregistering ResourceManager for type Font
09:17:35: Unregistering ResourceManager for type Skeleton
09:17:35: Unregistering ResourceManager for type Mesh
09:17:35: Unregistering ResourceManager for type HighLevelGpuProgram

Ich hab mir den Mesh mal aus dem Sample, oder irgendwo auf der Festplatte besorgt.

2. Frage
Wie kann ich andere Modelle laden. Bei denen sagt er mir immer Stream corrupted, oder could not find implementation for mesh serializer ?

Beiträge: 774

Beruf: Student

  • Private Nachricht senden

12

17.01.2010, 09:52

Ich denke hier ist das Problem

Quellcode

1
09:17:30: Can't assign material diamond to SubEntity of Test because this Material does not exist. Have you forgotten to define it in a .material script? 

Er findet das Material namens Diamond nicht - folglich kannst du auch nicht einstellen, dass deine Entity Schatten werfen soll. (Der Default ist übrigens true - musst du also gar nicht extra einstellen ;))
Materialien findest du in Materialscripten mit der Endung *.material :D
Wenn du mehr zu Materialien wissen willst, lohnt es sich das Manual zu dem Thema zu lesen.

Zu Frage 2:
Bei welchen Modellen hast du den dieses Problem? Also prinzipiell kannst du alle Ogre-Mesh so laden du es hier versucht hsat.. sollten nur in der aktuellen Version sein - bei nur minimal älteren gibt er ledeglich eine Warnung aus.

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

13

17.01.2010, 11:28

Du solltest halt darauf achten, dass alle Materialien in ihren Ordnern auch in der ressource.cfg stehen. Dann sollte es kein Problem sein.

EDIT: Wobei so ein Fehler wirklich auch das Problem eines älteren Modells sein könnte. Evtl. probierst du mal die aktuellen Sample-Modelle oder aktualisierst dieses Modell.

14

17.01.2010, 12:47

@Fred: Ich hab jetzt mal auf der Festplatte gesucht, und herausgefunden, dass der Diamond.mesh, von spherical stammt ;)
Macht ja dir nichts aus, wenn ich den für mich zum Testen von Ogre verwende ?
Gibt es denn bei dem irgendwas zu beachten ?


Zitat

Bei welchen Modellen hast du den dieses Problem? Also prinzipiell kannst du alle Ogre-Mesh so laden du es hier versucht hsat.. sollten nur in der aktuellen Version sein - bei nur minimal älteren gibt er ledeglich eine Warnung aus.

Bei allen die nicht die .mesh endung haben, und bei manchen .mesh.

EDIT: Das ist jetzt nicht mehr das Problem.

Quellcode

1
2
3
4
5
12:42:57: OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called '' for resource '' in ResourceGroupManager::openResource at ..\src\OgreResourceGroupManager.cpp (line 695)
12:42:57: Error loading texture diamond.png. Texture layer will be blank. Loading the texture failed with the following exception: OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called '' for resource '' in ResourceGroupManager::openResource at ..\src\OgreResourceGroupManager.cpp (line 695)
12:42:57: OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called '' for resource '' in ResourceGroupManager::openResource at ..\src\OgreResourceGroupManager.cpp (line 695)
12:42:57: Error loading texture diamond.png. Texture layer will be blank. Loading the texture failed with the following exception: OGRE EXCEPTION(5:ItemIdentityException): Cannot locate a resource group called '' for resource '' in ResourceGroupManager::openResource at ..\src\OgreResourceGroupManager.cpp (line 695)
12:42:57: *** Initializing OIS ***


Ist jetzt das Log. Die diamond.png ist in einem ordener, der in der Resource.cfg als FileSystem=plugins eingetragen ist, und welch überraschung plugins heisst. Muss ich da nur den Ordner oder auch die Datei eintragen ?

Noch ne Frage von mir. Wie siehts eigentlich aus 2D mit OGRE ?

EIDIT2: Neues Problem: Eine Ausnahme (erste Chance) bei 0x761cb727 in OGRE TEst.exe: Microsoft C++-Ausnahme: Ogre::RenderingAPIException an Speicherposition 0x003cf3b0..

Ich hab jetzt den Ninja mesh genommen, und die Schatten ausgeschaltet.

Das Log sagt

Quellcode

1
2
3
4
5
6
7
13:00:01: OGRE EXCEPTION(3:RenderingAPIException): Cannot assemble D3D9 high-level shader  Errors:
error X3501: 'ambientOneTexture_vp': entrypoint not found
 in D3D9HLSLProgram::loadFromSource at ..\src\OgreD3D9HLSLProgram.cpp (line 199)
13:00:01: High-level program Ogre/BasicVertexPrograms/AmbientOneTextureHLSL encountered an error during loading and is thus not supported.
OGRE EXCEPTION(3:RenderingAPIException): Cannot assemble D3D9 high-level shader  Errors:
error X3501: 'ambientOneTexture_vp': entrypoint not found
 in D3D9HLSLProgram::loadFromSource at ..\src\OgreD3D9HLSLProgram.cpp (line 199)

Kann doch nicht sein, dass der Shader aus dem Sample Fehlerhaft ist, oder ?

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

15

17.01.2010, 13:00

Was fuer Modelle sind das die kein .mesh haben? Evt sind die in einem anderen Format das Ogre nicht lesen kann.


An sich reicht es wenn du den Ordner angibst

16

17.01.2010, 13:07

Also ich hab .3ds und .obj (Wavefront) ausprobiert. Gibts denn irgendwas, was die konvertiert nach .mesh?

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

17

17.01.2010, 13:13

Es gibt einige Konverter auf der OgreSeite. Ogre kann nur .mesh Datein direkt laden, alles andere muss konvertiert werden. Das liegt daran das .mesh das Format von Ogre ist und somit kann man da einige optimierungen etc einbauen was bei anderen Formaten nicht moeglich ist und daher muss man konvertieren um diese nutzen zu koennen.

18

17.01.2010, 13:21

Konverter ? Gut, is mir noch gar nicht aufgefallen. Danke !

Also soweit ich das sehe, ist das Problem,was ich habe, dass er den Sample-Shader BasicExample.hlsl nicht verwenden kann, der aber von ninja.mesh gebraucht wird :evil: :evil:
Des kann doch nicht sein, dass der Shader aus dem Sample nicht geht, oder ?


EDIT: Die Exception wirft er mir auch, wenn ich einfach gar nichts mache, keine Enity erstelle. ?????? Wie dasssss?

Mirlix

Supermoderator

Beiträge: 451

Beruf: Developer Advocate

  • Private Nachricht senden

19

17.01.2010, 13:31

Ok, das ist echt seltsam, nutzen am besten den Sebugger und schaue nach wo genau die Exception her kommt und was sie sagt, die sollte ein describtion Feld haben.

20

17.01.2010, 13:40

Komisch, hab jetzt ein bisschen was geändert, jetzt gehts im DEBUG schonmal, und es zeigt diese Performance Anzeige an :D
Aber 150 FPS, ohne dasss ich auch nur 1 Mesh zeichne ? Liegt das am Debug, oder woran ? Ogre ist doch sonst immer so wahnsinns schnell ?

EDIT: Ach du scheisse im Release um 2900 FPS schneller. Was'n das für ein unterschied !

Werbeanzeige