Seite 3 von 5

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 11:23
von DarkDragon
Danilo hat geschrieben:
DarkDragon hat geschrieben:Rein aus interesse würde ich mir auch mal die neuen Ogre Sources von PB ansehen.
Ich glaube es gibt Interessanteres. Dich interessieren doch immer die neuesten
Entwicklungen auf diesem Gebiet - aber bei Dir mehr (nur?) OpenGL?
Ich komme leider nicht mehr so oft dazu überhaupt etwas in diesem Bereich zu machen. An der Universität arbeite ich an "echter" Kunst (Gemälde) mit Robotern und das schlaucht mich sehr, sodass ich Zuhause lieber was ganz anderes mache, was nichts mit Rendering zu tun hat.
Danilo hat geschrieben:Ich schau mir jetzt mal DX10 und 11 an, die sind wieder ganz anders
als DX9. Hab gestern paar Bücher dazu bekommen und muß mir jetzt
noch eine aktuellere DX11 Graka mit Shader5.0 bestellen.
Geld und Platz muss man dafür haben ;-) . Meine Grafikkarte ist noch eine GeForce 9600GT aus dem letzten Jahrzehnt. Damit kann man nichtmehr mithalten bei den neuesten Technologien.
Danilo hat geschrieben:In DX10 wurde die "fixed-function pipeline" entfernt, d.h. man setzt
keine States mehr über das limitierende DirectX-API (z.b. 8 Lichter über
einen DX-Call). Nun geht alles über Shader.
Ähnliches war soweit ich weiß für OpenGL 3 oder 4 vorgesehen, aber das alles scheint immer noch abwärtskompatibel zu sein. Außerdem wollte man die ganzen Puffer, also Vertex/TexCoord/Normal/... in einen allgemeinen Attribut-Puffer verfrachten.
Danilo hat geschrieben:DirectX10 also ein major cut nach DX9. Und DX11 mehr eine Erweiterung
von DX10/10.1.
Und seit DirectX11: DirectCompute, das API für generelle multithreading
Berechnungen über die GPU, z.B. Physik, Videokompression, Audioverarbeitung usw.

Das klingt doch besser als dieses uralte DirectX9... ;)
Auf jeden Fall, ja.

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 15:00
von PMV
DarkDragon hat geschrieben:
PureBasic Hilfe hat geschrieben:[...] Weitere Informationen sind auf der OGRE Website verfügbar. Die OGRE Lizenz kann hier eingesehen werden und die an PureBasic angepassten OGRE Sourcecodes können hier heruntergeladen werden. [...]
Aber das sind leider die alten Sources von PB ~3.94, es wird kein Makefile, CMake Instruction-File o.ä. mitgeliefert und die Readme ist auf Französisch.
OGRE ist bis 1.6.x unter der LGPL Lizenziert worden, das heißt Fred und Freak
müssen eigentlich bis PB v4.51 den eingebauten Source der OGRE3D innerhalb
der Engine.dll zur verfügung stellen. Vielleicht sollten wir das mal verlangen. :D
Aber der Code, der OGRE3D aufruft ... muss nicht veröffentlicht werden.

Und die neuste Version ... also die Beta verwenden 1.7.0 ... seit der ist
es die MIT-Lizenz. Da kannst erst recht nur auf das Wohlwollen hoffen. :wink:


Was den Schwarzen Bildschirm angeht, wie ich bereits sagte stehen in der Log
keine Fehler drin, die relevant sind. Damit unterstützt meine Grafikkarte auch
die benötigten Anforderungen. :wink: Der Wurm ist wo anders drin. Ich hab ne
ATI Karte. MPZ hatte ja einige Shader für seine Engine gebaut ... und Probleme
mit diversen Grafikkarten. So einfach sind Shader also leider nicht. Was auf ner
Geforce läuft, muss nicht auf der Radeon klappen. :|

MFG PMV

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 17:57
von DarkDragon
PMV hat geschrieben:Was den Schwarzen Bildschirm angeht, wie ich bereits sagte stehen in der Log
keine Fehler drin, die relevant sind. Damit unterstützt meine Grafikkarte auch
die benötigten Anforderungen. :wink: Der Wurm ist wo anders drin. Ich hab ne
ATI Karte. MPZ hatte ja einige Shader für seine Engine gebaut ... und Probleme
mit diversen Grafikkarten. So einfach sind Shader also leider nicht. Was auf ner
Geforce läuft, muss nicht auf der Radeon klappen. :|
Damit muss man bei zeitgemäßer Spiele-Entwicklung aber immer rechnen. Nichtsdestotrotz hab ich jetzt mal das ganze mit ATI und Intel probiert. Funktioniert beides:
17:57:24: RenderSystem Name: Direct3D9 Rendering Subsystem
17:57:24: GPU Vendor: intel
17:57:24: Device Name: Mobile Intel(R) 4 Series Express Chipset Family
17:57:24: Driver Version: 8.14.1.6126
17:57:24: * Fixed function pipeline: yes
17:57:24: * Hardware generation of mipmaps: yes
17:57:24: * Texture blending: yes
17:57:24: * Anisotropic texture filtering: yes
17:57:24: * Dot product texture operation: yes
17:57:24: * Cube mapping: yes
17:57:24: * Hardware stencil buffer: yes
17:57:24: - Stencil depth: 8
17:57:24: - Two sided stencil support: yes
17:57:24: - Wrap stencil values: yes
17:57:24: * Hardware vertex / index buffers: yes
17:57:24: * Vertex programs: yes
17:57:24: * Fragment programs: yes
17:57:24: * Geometry programs: no
17:57:24: * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
17:57:24: * Texture Compression: yes
17:57:24: - DXT: yes
17:57:24: - VTC: no
17:57:24: * Scissor Rectangle: yes
17:57:24: * Hardware Occlusion Query: yes
17:57:24: * User clip planes: yes
17:57:24: * VET_UBYTE4 vertex element type: yes
17:57:24: * Infinite far plane projection: yes
17:57:24: * Hardware render-to-texture: yes
17:57:24: * Floating point textures: yes
17:57:24: * Non-power-of-two textures: yes (limited)
17:57:24: * Volume textures: yes
17:57:24: * Multiple Render Targets: 4
17:57:24: - With different bit depths: yes
17:57:24: * Point Sprites: yes
17:57:24: * Extended point parameters: yes
17:57:24: * Max Point Size: 256
17:57:24: * Vertex texture fetch: yes
17:57:24: - Max vertex textures: 4
17:57:24: - Vertex textures shared: no
17:57:24: * Render to Vertex Buffer : no
17:57:24: * DirectX per stage constants: yes
17:58:55: RenderSystem Name: Direct3D9 Rendering Subsystem
17:58:55: GPU Vendor: ati
17:58:55: Device Name: ATI Mobility Radeon HD 3650
17:58:55: Driver Version: 8.14.1.6126
17:58:55: * Fixed function pipeline: yes
17:58:55: * Hardware generation of mipmaps: yes
17:58:55: * Texture blending: yes
17:58:55: * Anisotropic texture filtering: yes
17:58:55: * Dot product texture operation: yes
17:58:55: * Cube mapping: yes
17:58:55: * Hardware stencil buffer: yes
17:58:55: - Stencil depth: 8
17:58:55: - Two sided stencil support: yes
17:58:55: - Wrap stencil values: yes
17:58:55: * Hardware vertex / index buffers: yes
17:58:55: * Vertex programs: yes
17:58:55: * Fragment programs: yes
17:58:55: * Geometry programs: no
17:58:55: * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
17:58:55: * Texture Compression: yes
17:58:55: - DXT: yes
17:58:55: - VTC: no
17:58:55: * Scissor Rectangle: yes
17:58:55: * Hardware Occlusion Query: yes
17:58:55: * User clip planes: yes
17:58:55: * VET_UBYTE4 vertex element type: yes
17:58:55: * Infinite far plane projection: yes
17:58:55: * Hardware render-to-texture: yes
17:58:55: * Floating point textures: yes
17:58:55: * Non-power-of-two textures: yes
17:58:55: * Volume textures: yes
17:58:55: * Multiple Render Targets: 4
17:58:55: - With different bit depths: yes
17:58:55: * Point Sprites: yes
17:58:55: * Extended point parameters: yes
17:58:55: * Max Point Size: 256
17:58:55: * Vertex texture fetch: yes
17:58:55: - Max vertex textures: 4
17:58:55: - Vertex textures shared: no
17:58:55: * Render to Vertex Buffer : no
17:58:55: * DirectX per stage constants: yes
Das sind sogar Notebook Grafikkarten. Echt seltsam. Für GLSL gab es wenigstens mal einen Validator, den ich mir gesichert habe. Sowas scheint es bei HLSL nicht zu geben.

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 18:18
von PMV
21:58:03: RenderSystem Name: Direct3D9 Rendering Subsystem
21:58:03: GPU Vendor: ati
21:58:03: Device Name: Monitor-1-ATI Radeon HD 5670
21:58:03: Driver Version: 8.17.10.1083
21:58:03: * Fixed function pipeline: yes
21:58:03: * Hardware generation of mipmaps: yes
21:58:03: * Texture blending: yes
21:58:03: * Anisotropic texture filtering: yes
21:58:03: * Dot product texture operation: yes
21:58:03: * Cube mapping: yes
21:58:03: * Hardware stencil buffer: yes
21:58:03: - Stencil depth: 8
21:58:03: - Two sided stencil support: yes
21:58:03: - Wrap stencil values: yes
21:58:03: * Hardware vertex / index buffers: yes
21:58:03: * Vertex programs: yes
21:58:03: * Number of floating-point constants for vertex programs: 256
21:58:03: * Number of integer constants for vertex programs: 16
21:58:03: * Number of boolean constants for vertex programs: 16
21:58:03: * Fragment programs: yes
21:58:03: * Number of floating-point constants for fragment programs: 224
21:58:03: * Number of integer constants for fragment programs: 16
21:58:03: * Number of boolean constants for fragment programs: 16
21:58:03: * Geometry programs: no
21:58:03: * Number of floating-point constants for geometry programs: 0
21:58:03: * Number of integer constants for geometry programs: 0
21:58:03: * Number of boolean constants for geometry programs: 0
21:58:03: * Supported Shader Profiles: hlsl ps_1_1 ps_1_2 ps_1_3 ps_1_4 ps_2_0 ps_2_a ps_2_b ps_2_x ps_3_0 vs_1_1 vs_2_0 vs_2_a vs_2_x vs_3_0
21:58:03: * Texture Compression: yes
21:58:03: - DXT: yes
21:58:03: - VTC: no
21:58:03: - PVRTC: no
21:58:03: * Scissor Rectangle: yes
21:58:03: * Hardware Occlusion Query: yes
21:58:03: * User clip planes: yes
21:58:03: * VET_UBYTE4 vertex element type: yes
21:58:03: * Infinite far plane projection: yes
21:58:03: * Hardware render-to-texture: yes
21:58:03: * Floating point textures: yes
21:58:03: * Non-power-of-two textures: yes
21:58:03: * Volume textures: yes
21:58:03: * Multiple Render Targets: 4
21:58:03: - With different bit depths: yes
21:58:03: * Point Sprites: yes
21:58:03: * Extended point parameters: yes
21:58:03: * Max Point Size: 10
21:58:03: * Vertex texture fetch: yes
21:58:03: * Number of world matrices: 0
21:58:03: * Number of texture units: 8
21:58:03: * Stencil buffer depth: 8
21:58:03: * Number of vertex blend matrices: 0
21:58:03: - Max vertex textures: 4
21:58:03: - Vertex textures shared: no
21:58:03: * Render to Vertex Buffer : no
21:58:03: * DirectX per stage constants: yes

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 19:12
von DarkDragon
Dafür reicht mein Geld definitiv nicht aus :lol: . Hätte eher ein älteres System vermutet, kein neueres. Probiert das doch mal bitte mit der PB 4.60 beta 3 aus, weil die OGRE Engine dort ja neuer ist. Habt ihr überhaupt DirectX 9 installiert? DirectX 10 und 11 sind soweit ich weiß nicht abwärtskompatibel zu DirectX 9. Vielleicht ist da das Problem und OGRE merkt das nicht o.ä..

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 20:10
von PMV
Das ist ja mit PB4.60 Beta 3 x64 gemacht.
Bei der PB4.51 x86 bekomm ich nen grauen Würfel. Da werden die
Shader garnicht aufgerufen nehm ich an. Bei 4.60 wird wohl Shader
ausgeführt, aber das Ergebnis passt nicht. :lol:

DX9 ist in DX10/11 nicht enthalten, weshalb das extra installiert
werden muss. Wer nur die neueren installiert hat, bei Win 7 und bei
Vista vermutlich auch ist nur DX10/11 vorinstalliert ... DX9 muss also
extra installieren werden, bevor DX9 Spiele laufen. der Webinstallert
sagt mir (leider?), das es die neuste Version drauf ist und bricht ab,
ohne etwas zu installieren. Treiber für die Grafikkarte hab ich erst vor
ein paar Tagen aktualisiert. System ist also auf dem aktuellen Stand. :)

Die HD 5670 ist vergleichbar mit der 9800 GT, nur viel Stromsparender. :lol:
Und halt von Anfang letzten Jahrs. Also das jetzt keine teure Grafikkarte,
inzwischen für unter 80€ zu haben. :wink: Und die kam damals glücklicher
weise raus, als es daran ging mein PC mal zu "updaten" :D

MFG PMV

Re: Wozu dient CreateTexture()?

Verfasst: 06.08.2011 20:27
von DarkDragon
PMV hat geschrieben:Das ist ja mit PB4.60 Beta 3 x64 gemacht.
Bei der PB4.51 x86 bekomm ich nen grauen Würfel. Da werden die
Shader garnicht aufgerufen nehm ich an. Bei 4.60 wird wohl Shader
ausgeführt, aber das Ergebnis passt nicht. :lol:
Mit der neuen Zip? Also drawing_shader2.zip? Das sollte dann unter PB 4.51 auch schwarz sein!

Re: Wozu dient CreateTexture()?

Verfasst: 07.08.2011 09:54
von Danilo
@DarkDragon & PMV:
Bei mir läuft es nun mit PB4.51 und PB4.60 Beta3.

Einfach bei DarkDragons 2 Beispielen die Datei
"CubeMaterial.material" im Verzeichniss "data\"
öffnen und die 5. Zeile von

Code: Alles auswählen

  target vs_1_1
in

Code: Alles auswählen

  target vs_3_0
ändern.

Re: Wozu dient CreateTexture()?

Verfasst: 07.08.2011 10:05
von DarkDragon
Danilo hat geschrieben:@DarkDragon & PMV:
Bei mir läuft es nun mit PB4.51 und PB4.60 Beta3.

Einfach bei DarkDragons 2 Beispielen die Datei
"CubeMaterial.material" im Verzeichniss "data\"
öffnen und die 5. Zeile von

Code: Alles auswählen

  target vs_1_1
in

Code: Alles auswählen

  target vs_3_0
ändern.
Oha, dann muss die Version zwischen VS/PS also gleich sein?

Re: Wozu dient CreateTexture()?

Verfasst: 07.08.2011 10:21
von Danilo
DarkDragon hat geschrieben:Oha, dann muss die Version zwischen VS/PS also gleich sein?
Sieht so aus: Shader Models vs Shader Profiles
Bei den Shader Profiles passen VS & PS immer zusammen.