DreiDe - 3D Engine basierend auf OpenGL

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen

Plasma(alt)

Betreff: yap

BeitragSo, Aug 07, 2005 21:15
Antworten mit Zitat
Benutzer-Profile anzeigen
kanns nicht testen muss mir doch mal ne neue graka kaufen


@ vertex

kommt noch sowas wie gettexturename usw ?
DIV is dead !

Vertex

BeitragSo, Aug 07, 2005 22:39
Antworten mit Zitat
Benutzer-Profile anzeigen
So, ich bin zurück aus meinem "Urlaub" - besser gesagt die 4 beschissensten Tage meines Lebens...

YellowRider: Das sieht absolut geil aus! Fetten Respekt! Soll ich das mit MyFragmentProgram.GetError() so machen, das wenn kein FP Support da ist, es dennoch eine Fehlermeldung wie "FragmentPrograms are not supported!" geben soll? GetError() gibt eigentlich nur die Syntaxfehler der Shaderprogramme zurück.

Plasma: Wie meinst du das mit dem Texturenamen? Meinst du den Integernamen, der von OpenGL vergeben wird?

Ich werde die nächsten Tage mich ersteinmal hinter Cg klemmen. Ist wie gesagt eine Shadersprache (C änlich), und kein Assembly mehr. Wird anscheinend von den Karten unterstützt die ebenfalls VP und/oder FP Support haben.

mfg olli
vertex.dreamfall.at | GitHub
 

neverbit

BeitragMi, Aug 10, 2005 11:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hoi,
Erstmal ein riesiges Lob an dich Vertex! Es sind echt superschicke Samples und hammer Bilder bis jetzt!
kann das Modul mit der Demo leider nicht compilieren, wird wohl mal Zeit die Full zukaufen.

Und Respekt für deine Ausdauer!
Also mach weiter so!

Vertex

BeitragMi, Aug 10, 2005 13:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, danke Smile Wenn du willst, kann ich mal Exe Dateien daraus machen.

Ich konnte jetzt den Speed ein wenig pushen, in dem ich die Projektionsmatrix der Kamera nur noch dann berechnen lasse, wenn z. B. was am Zoom geändert wird. Sie wird dann nur noch per glLoadMatrix geladen.

Weiter funktioniert schon der MyCamera.Project Befehl. Man übergibt 3D Koordinaten änlich wie in Blitz3D mit CameraProject und erhält die 2D Bildschirmkoordinaten änlich wie ProjectedX/Y/Z.

RenderToTexture geht ebenfalls. Man rendert die Szene ganz normal, und statts mit Flip die Szene dann auf den Bildschirm anzuzeigen, sagt man MyTexture.GrabBackBuffer(X, Y). Dann kopiert er das gerenderte in die Textur. Ist sehr viel schneller, als wie z. B. in Max2D GrabPixmap das glReadPixels verwendet.

Habe schon angefangen einen B3D Loader zu schreiben. Ziemliches scheiß Format was da Mark entwickelt hat. Z. B. speichert er alle Vertices in einem einzigen Chunk ab. Jedoch die Surfaces mit Triangledaten in sepperate Chunks.

Z. Z. wird an Projective Textures gearbeitet. Man kann dann praktisch einer Textur ein Entity zuweisen, was wie ein Projektor funktioniert. Dieser Projektor ist meinetwegen der Suchscheinwerfer in euren Batmanspiel. Schwirigkeiten macht mir jedoch a) noch, das die UV Koordinaten warum auch immer nicht aus den Eye Koordinaten berechnet werden, und b) aufgrund der Mathematik dahinter immer auf beiden Seiten projektziert wird.

Klappt projective Textures, so ist es dann auch möglich mit Hilfe von Depth Textures !Schatten! zu erzeugen. Man rendert die Szene ohne großen Schnickschnack(ohne Lighting, ohne Texturen usw.) aus der Perspektive des Lichts. Kopiert nurn mit MyTexture.GrabBackBuffer() den Depthbuffer der Szene in die Textur. Jetzt rendert man die Szene ganz normal mit Projective Texture, was der Schatten dann ist.

mfg olli

Edit: So langsam komme ich Projective Textures auf die Schliche.
vertex.dreamfall.at | GitHub

Vertex

BeitragSa, Aug 13, 2005 23:17
Antworten mit Zitat
Benutzer-Profile anzeigen
http://vertex.art-fx.org/dreide252.zip
http://vertex.art-fx.org/dreide_examples252.zip

Naja, ist nix besonders neues dabei. CubeMapping funktioniert nun, ansonsten eben schnelleres Rendering, Render to Tetxure, MyCamera.Project und ein paar Bugs behoben.

Nur damit es nicht aussieht, das Projekt sei tot. Der B3D Loader und der MD2 Loader funktionieren nicht! Ist nur zum spielen für mich da Smile

Hatte heute viel Zeit um die OGL 2.0 Specs zu studieren. reizt mal wieder eine Softwarerendering Engine zu schreiben.

Ansonsten hatte ich gestern mal an einem Reflection/Refraction Shader gearbeitet. Produziert jedoch nicht das gewünschte Ergebnis.

So soll er mal aussehen:

user posted image

mfg olli
vertex.dreamfall.at | GitHub

Justus

BeitragSo, Aug 14, 2005 9:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
reizt mal wieder eine Softwarerendering Engine zu schreiben


Laughing Es ist irre, wie leicht du das aussehen lässt Mr. Green

Gibt es denn mal bald Exe-Dateien? Ich würde deine Sachen gerne mal live sehen...

tft

BeitragSo, Aug 14, 2005 11:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ....

bei mir kommt folgender Error......

C:/Programme/BlitzMax/bin/ld.exe: cannot find C:/Programme/BlitzMax/mod/pub.mod/dreide.mod/dreide.debug.win32.a


wasssen das ?????
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Vertex

BeitragSo, Aug 14, 2005 15:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Justus: Ich habe dir mal die Exe Dateien compiliert
http://vertex.art-fx.org/dreide_examples252bin.zip (Media Dateien sind dabei)

tft: dreide.mod Ordner in den BlitzMax mod\pub.mod\ Ordner kopieren und dann im Editor Alt+D drücken. Dann comiliert er das Modul, und dann kannst du es benutzen. Ich biete keine compilierte Version an, da DreiDe platformunabhängig ist. Muss also auf der jeweiligen Platform compiliert werden.

mfg olli
vertex.dreamfall.at | GitHub

Justus

BeitragSo, Aug 14, 2005 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Beeindrukend, kann man nicht anders sagen! Der Watershader sieht sehr nett aus! Wenn das auch Ingame so aussieht, wie ich mir das vorstelle, könnte man bisher ungeahntes BlitzWasser machen - geil!

Der Toonshader ist auch ganz lustig, könnte ich mir auch durchaus in einem Comicgame vorstellen.

Alles andere sieht auch sehr gut aus, wobei mir jedoch der nötige 3D Sachverstand fehlt, um zu wissen, was es mit Spheremapping und Konsorten auf sich hat.

Bumpmapping kenn ich aber, wobei das bei dem Kopf jetzt nicht sooo deutlich zu sehen ist...
 

Dreamora

BeitragSo, Aug 14, 2005 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Spheremapping: Stell dir eine Kugel ums Objekt vor. Danach wird das, was auf der Kugeltextur ist einfach in Richtung Zentrum projiziert.

Supi Sache auf jeden Fall ... endlich mal ein sinnvoller Grund sich ein wenig mit ASM rumzuärgern Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Plasma(alt)

Betreff: jaja back to the roots

BeitragSo, Aug 14, 2005 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Shocked ASM Shocked

lol @ Dreamora
DIV is dead !
 

Dreamora

BeitragSo, Aug 14, 2005 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo ASM für die Shaderprogramme. Weisst muss den "Mist" für s'Studium eh lernen und so rum machen derartige Dinge mehr spass als für theoretische Dinge deren praktischen Sinn ich als ~0 einstufe Very Happy
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

tft

BeitragSo, Aug 14, 2005 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi ....

die Examples funktionieren gut. Aber das Problem mit dem selber Compilieren bleit......

Keiner da der mir helfen kann.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Freeman

BeitragSo, Aug 14, 2005 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei mir funzt alles wunderbar, kann mich nicht beschwerden,haste mal dein mingW pfade gescheckt`?

Fr3eMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Vertex

BeitragMo, Aug 15, 2005 0:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Justus: Wenn ich dann mal bei Release Version 3.00 angelangt bin, wo dann Depth Sorting, Projective Texturing, Depth Texturing, Bone Animation, TLight und X, 3DS, B3D und MD2 Loader funzen, dann schreibe ich auch eine deutsche Hilfe zu DreiDe mit Beispielen, und technischen/mathematischen Hintergrund.

Ja Bumpmapping sieht man bei dem Kopf nicht so gut. Da gibt es noch ein gutes Model Aphrodite Venus, da sieht man es besser. brauche dazu nur die Normalmap.

Dreamora: Event. kommt eben noch Cg Support, jedoch bietet glew daür keine Funktionsprototypen an.

tft:
Zitat:
* Notes for Win32 module developers *

To enable module development, you must install the Mingw package http://www.mingw.org/ (main download here http://prdownloads.sf.net/ming...e?download ), and add the Mingw 'bin' directory to your PATH environment variable. You must also add a MINGW environment variable that contains the base directory of the Mingw installation.

Note that Mingw is not necessary for general use.


Ich persönlich benutze DevC++ mit MingW.

Also saug dir http://prdownloads.sf.net/ming...e?download

Dann Start -> Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen

Bei Systemvariablen am besten bei der Variable "Path" noch den Pfad von MingW eintragen, und eine zusäzliche Variable "mingw" mit dem Pfad erstellen.

Bei mir ist das z. B.:
Path = "%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;D:\DevCpp\bin;;"
mingw = "D:\DevCPP\bin"

Jetzt synkronisierst du die Module, und führst Rebuild All Modules (Im Menü unter Program) aus.

YellowRider war so nett, und hat mein Sample zum Thema glSlang ohne Probleme getestet(meine Grafikkarte unterstützt es leider nicht, das kann man z.Z. auch nicht emulieren). Ich weiß bloß noch nicht, wie ich das jetzt strukturell in DreiDe einbette.

mfg olli
vertex.dreamfall.at | GitHub

Vertex

BeitragMo, Aug 15, 2005 4:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Scheiße ist es spät...

http://vertex.art-fx.org/dreide253.zip
http://www.blitz-pasting.net/i...amp;id=162

Mit glSlang. Ist Beta Version, weil ich es eben selber nicht testen kann.

Was ist nun der Unterschied zu den Vertex/FragmentProgrammen?
glSlang = OpenGL Shading Language ist eine C änliche Hochsprache. Sie erlaubt dann solche Sachen wie If, For, usw. was mit den Assemblyprogrammen nicht möglich ist(es gibt kein BranchBefehle)

Der zweite Link beinhaltet ein simples Beispiel.

VertexShader:
Code: [AUSKLAPPEN]
void main(void)
{
   gl_Position = gl_ModelViewProjectionMatrix*gl_Vertex;
   gl_FrontColor = gl_Color;
}


FragmentShader:
Code: [AUSKLAPPEN]
void main(void)
{
   gl_FragColor = gl_Color;
}


Nützliche Infos:
http://delphigl.com/script/do_...p;action=2
http://oss.sgi.com/projects/og....10.59.pdf

Ich weiß, das die Exe bei YellowRider nicht läuft. Ich habs dennoch mal hier her gepostet, in der Hoffnung, das sich jemand mal für gnädig befindet, und das Example durch den Debugger jagt.

Was fehlt, ist die Übergabe von Uniformparametern. Liegt daran, das das recht viele Formate sind, und ich noch keine Lust darauf hatte Smile

Weiterhin weiß ich nicht, ob ich http://wiki.delphigl.com/tutor...rial_glsl2 hier vertrauen kann, das VertexAttribute Vertexfarbe, Vertexnormal usw. löschen. Deswegen habe ich mal das Binden des Attributbuffers herausgenommen für Shader.

mfg olli
vertex.dreamfall.at | GitHub
 

Dreamora

BeitragMo, Aug 15, 2005 6:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetz warst du schneller ... da wollt ich doch glatt die verwendung von Shader Programmen vorschlagen anstatt CG, da die auch in Glew drin sein sollten und glsl ja eigentlich eh die offizielle Shadersprache ist seit OpenGL 2.0.

Laufen die Frag / Vertex Programme eigentlich auf der CPU oder der GPU? (shaderprogramme sind ja GPU)

Ist es eigentlich erlaubt / angebracht einen Request einzubringen?
Es hat nu doch einige neue Features von OpenGL in DreiDe ... ein sehr praktisches und altes Feature fehlt jedoch noch und das wäre der Support von S3TC Texturkompression (zumindest gibts keine Flag DDD_TEXTURE_COMPRESSED oder DDD_TEXTURE_S3TC). Natürlich nur, wenn die Implementation net zu schwer wäre. *mich mit OpenGL nach wie vor net gut genug auskenn für Glew Dinge Sad*
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Vertex

BeitragMo, Aug 15, 2005 13:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Vertex- und fragmentProgramme werden eigentlich ebenfalls in den Vertex- bzw. FragmentProzessor der GPU geladen.

Natürlich kannst du nach Features fragen. Habe mich mal mit S3TC jetzt kurz beschäftigt. Wenn ich unkomprimierte Bilddaten an OpenGL übergeben kann, und er mir das intern komprimiert, dann sehe ich eigentlich keine Probleme. Müsste dann halt die minimale Texturgröße von 1*1 auf 4*4 Texel für S3TC anheben. Könnte dann auch einen DDS Texturloader basteln mit DXT1, DXT3, DXT5 Support.

Da es bei YellowRider nicht lief, habe ich nochmal ein externes Sample geschrieben:

Code: [AUSKLAPPEN]
editiert


test.vs:
Code: [AUSKLAPPEN]
editiert


test.fs:
Code: [AUSKLAPPEN]
editiert


(Der lange Code wird dann wieder gelöscht, wenn alle geht)

Wäre sehr verbunden, wenn jemand das mal mit seiner neuen Grafikkarte testen kann. Sollte ein Fehler auftauchen, wäre es auch gut, wenn er mir die Stelle nennt.

Wenn alles funktioniert, sollte ein weißes rotierendes Dreieck zu sehen sein. Der Code benötigt nciht das DreiDe Modul.

mfg olli
vertex.dreamfall.at | GitHub

Plasma(alt)

Betreff: lol

BeitragMo, Aug 15, 2005 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
der typ ist irre Razz Razz Razz Razz Razz Razz

mach weiter vertex !!!
DIV is dead !

bruZard

BeitragMo, Aug 15, 2005 16:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die 2.53 schmiert mir bei Deinem letzten Test ab.

Bei "Shader = New TShader" will er auf ein NULL Objekt zugreifen.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9  Weiter

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group