Seite 1 von 2

Error : The 3D Engine can't be initialized

Verfasst: 05.05.2012 23:25
von Hilli
Hallo zusammen,
ich habe ein neues Notebook mit Win7-x64 und möchte jetzt natürlich auch PB460_x64 benutzen.
Soweit Alles gut, nur beim Versuch eine 3D Anwendung zu starten bekomme ich einen Error.
Siehe Betreff.
Laut "dxdiag" ist DirectX11 auf dem Notebook installiert.
Mit einer PB460_x86 Installation auf dem neuen Notebook habe ich diese Fehlermeldung nicht.
Im Verzeichnis "\SubSystems" ist bei beiden Installationen jeweils das Verzeichnis "DirectX7" und "OpenGL".

Wo bitte liegt das Problem, wie kann es gelöst werden.
Für eine hilfreiche Antwort schon mal vielen Dank im Voraus.

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 00:03
von ts-soft
Schön das Du DirectX11 hast, aber das ist nur für sehr aktuelle Spiele.
DirectX9 gibt es hier: http://www.microsoft.com/downloads/de-d ... 6652cd92a3

Keine Angst, die beiden DirectXen beißen sich nicht :wink:

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 11:09
von Hilli
Hi, danke erst einmal für Deine super schnelle Antort.

Habe Deinen Vorschlag ausgeführt, also DirectX9 installiert, und auch wie früher notwendig,
vorsichtshalber einen Neustart durchgeführt.
Leider hat sich an meiner Situation nichts geändert. Es kommt immer noch der gleiche Fehler hoch.
Frage, wodran liegt es?

[u]Laut Hilfe zu dem Befehl "InitEngine3D()" :[/u]
"Dieser Befehl versucht, die 'Engine3D.dll' und DirectX 7 zu laden. Wenn dies fehlschlägt,
liegt dies möglicherweise daran, dass die DLL oder DirectX 7+ nicht gefunden wurde."

Die DLL ist im Compilers Verzeichnis vorhanden, wurde so installiert.
Da es kein Problem mit einer (x86) Installation unter Win7_x64 gibt,
kann und konnte es doch eigentlich nicht an der fehlenden DX9 Installation liegen,
Nach Aussage von Microsoft sind bei der Installation von DX11 alle downgrads bis DX7 mit vorhanden,
was man auch anhand der DLL's in Windows Verzeichnis sehen kann.

mfg Udo

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 11:29
von ts-soft
Hilli hat geschrieben:Nach Aussage von Microsoft sind bei der Installation von DX11 alle downgrads bis DX7 mit vorhanden,
was man auch anhand der DLL's in Windows Verzeichnis sehen kann.
Egal was MS dort aussagt, es stimmt definitiv nicht! Dann würde MS den obigen Download, der ja sinnlos wäre,
auch gar nicht für Windows 7 anbieten :mrgreen:

Ansonsten denke ich mal, Du solltest die "Engine3d.dll" ins Source-Verzeichnis kopieren.

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 12:10
von Hilli
Bin immer wieder begeistert, tolles Forum.

Habe die "Engine3d.dll" ins Source-Verzeichnis der Examples kopiert.
Leider keine Besserung, Fehler bleibt.

Also noch mal von vorn, habe PB460_x64 neu installiert, keine Änderung,
immer noch Fehler.
Der einzige Unterschied den ich finden kann ist:
Bei x86 ist die Dateigröße von Engine3D.dll = 2.317KB,
bei X64 ist die Dateigröße von Engine3D.dll = 13.670KB
Wie schon gesagt bei x86 läuft alles super.

Ich brauche 3D nicht wirklich, aber trotzdem müsste es doch funktionieren.
Hat Du noch eine Idee warum es nicht funktioniert?

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 12:35
von ts-soft
Hilli hat geschrieben:Ich brauche 3D nicht wirklich, aber trotzdem müsste es doch funktionieren.
Hat Du noch eine Idee warum es nicht funktioniert?
Bei mir funktionierts, ähnliche Ausstattung.

Die DLL größen bei Dir stimmen auch. Evtl im Source ein SubSystem eingetragen?
Keine Rechte im Examples-Ordner zu schreiben? (Das würde aber eher einen Link-Error hervorrufen).

Mehr fällt mir jetzt auch nicht ein. Da die 4.60 leider sehr viele Fehler enthält, würde ich an
Deiner Stelle eher zur 4.61 Beta 2 greifen.

Gruß
Thomas

Re: Error : The 3D Engine can't be initialized

Verfasst: 06.05.2012 13:48
von Hilli
An den Berechtigungen kann es nicht liegen, habe ich als Admin auch ausprobiert.
Werde bei Gelegenheit die Beta mal ausprobieren.
Bis dahin erst mal recht herzlichen Dank für Deine Bemühungen.
Wird sich schon noch was ergeben, vielleicht erledigt es sich von selbst.
Gruß Udo

Re: Error : The 3D Engine can't be initialized

Verfasst: 07.05.2012 20:44
von PMV
Ogre3D läuft mit DX9.0c ... sollte die Hilfe was anderes sagen ist
das veraltet und sollte gemeldet werden zum verbessern.

Bis einschließlich DX9.0c ist dieser voll Abwärtskompatibel ... bis auf
kleinere Ausnahmen soweit ich gelesen hab. Doch hier hat MS einen
Bruch gemacht und seit DX10 muss DX9.0c extra installiert werden.

Zur Problembehebung:
Schau mal in dem Ordner, in dem sich die compilierte EXE befindet nach
ner OGRE3D.log. Da sollte drinn stehen was schief gelaufen ist. Gibs die
nicht, könnte es trotzdem an nicht kompatibler Hardware liegen. Kann
das ausgeschlossen werden, riecht es nach einem Bug in OGRE oder PB.

MFG PMV

Re: Error : The 3D Engine can't be initialized

Verfasst: 28.05.2012 10:08
von Hilli
Hi, Problem besteht weiterhin nur bei der _x64 Installation von PB.
Eine OGRE3D.Log Datei wird nicht erzeugt.

Da ich kein Problem mit einer _X86 Installation auf dem selben Rechner habe,
kann es wohl nicht an der Hardware liegen.

DirectX9 habe ich auch noch mal extra nachinstalliert.

Werde jetzt mal die 4.61 Final Version ausprobieren, hatte mit der Beta4 auch Probleme.
Unteranderem war die Darstellung der Icons in der IDE nicht richtig.

Mal sehen was noch kommt.

Noch schönen Pfingstmontag
mfG Udo

Habe soeben beide Final Versionen 4.61_x86 und 4.61_x64 installiert.
Weiterhin ist das Problem nur bei der _x64 Version.
Eine OGRE.log wird NUR für _X86 erzeugt.

Fazit, Stand der Dinge wie gehabt, keine Änderung !!!!!

Re: Error : The 3D Engine can't be initialized

Verfasst: 29.05.2012 01:09
von PMV
Nur noch mal um alles zusammen zu fassen:

1. die x64 Version ist eine saubere Neuinstallation
2. unter den Compileroptionen ist kein Subsystem eingetragen
3. Es wird die richtige DLL geladen (Engine3D.dll)
- in Windows System32-Ordner überprüfen ob da eine ist (wenn ja löschen!)
- überprüfen ob weitere Pfade in Wiundows eingestellt sind und diese auch überprüfen
- die benötigte Engine3D.dll aus PureBasic\Compilers\ in das Verzeichnis kopieren, wo die erstellte EXE ist
- in der EXE sicherstellen, das das Arbeitsverzeichnis auch das aktuelle ist

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename())) ;so oder so ähnlich wars ;-)
- in de Compileroptionen EXE im Quellcodeverzeichnis erstellen auswählen
- EXE compilieren und ausführen

Wenn alles ausgeschlossen wurde, ist ein Bug-Report im eng. Forum fällig. :|

MFG PMV