Autor |
Beitrag |
AndyB
Beiträge: 1173
Erhaltene Danke: 14
RAD Studio XE2
|
Verfasst: So 17.08.03 01:21
Für Kylix:
Graphics = QGraphics
Bei Jpeg muss man ein wenig "tricksen":
Delphi-Quelltext 1: 2:
| type TJpegImage = TBitmap |
Das TBitmap kann unter Linux neben .bmp auch .xpm, .png und .jpg einlesen und schreiben.
_________________ Ist Zeit wirklich Geld?
|
|
10Markus
Beiträge: 33
|
Verfasst: So 17.08.03 12:53
Titel: Problem mit dem ganzen...
Hi,
ich habe vor ein 3D-Koordinatensystem zu zeichnen, komme aber nicht richtig weiter. Es geht schon damit los, dass ich folgendes nicht machen kann: Ich habe einen Punkt mit x|y|z und will einen 2. Punkt zeichnen, der die gleichen x|y-koordinaten hat, nur eine andere z koordinate. Wie muss ich das anstellen?
Könnte mir vielleicht jemand den Code eines einfachen Würfels schicken, dann hätte ich mal eine Vorlage, mit der ich was anfangen könnte.
Ihr könnt mich auch per ICQ kontakten (#169699241).
Wäre für jede Hilfe Dankbar.
Grüße,
Markus
|
|
t/f
Beiträge: 70
|
Verfasst: So 17.08.03 14:13
ok ich bin aber noch nicht viel weiter
ich habe folgende Änderungen vorgenommen:
Delphi-Quelltext 1: 2: 3:
| uses OpenGL12, SysUtils, QGraphics, Classes; |
und
Delphi-Quelltext 1: 2:
| type TJpegImage = TBitmap; |
Aber es scheint mehr zu fehlen ...
Zitat: | [Fehler] Textures.pas(87): Undefinierter Bezeichner: 'TRGBQuad'
[Fehler] Textures.pas(8: Undefinierter Bezeichner: 'DWord'
[Fehler] Textures.pas(235): Undefinierter Bezeichner: 'CopyMemory'
[Fehler] Textures.pas(257): Undefinierter Bezeichner: 'CopyMemory'
[Fehler] Textures.pas(292): Undefinierter Bezeichner: 'BitmapFileHeader'
[Fehler] Textures.pas(293): Undefinierter Bezeichner: 'BitmapInfoHeader'
[Fehler] Textures.pas(302): 'THEN' erwartet, aber Bezeichner 'bfType' gefunden
[Fehler] Textures.pas(308): 'THEN' erwartet, aber Bezeichner 'biSize' gefunden
[Fehler] Textures.pas(313): Operator oder Semikolon fehlt
[Fehler] Textures.pas(314): ')' erwartet, aber Bezeichner 'biHeight' gefunden
[Fehler] Textures.pas(316): ';' erwartet, aber 'IF' gefunden
[Fehler] Textures.pas(317): Undefinierter Bezeichner: 'iHeader'
[Fehler] Textures.pas(319): Undefinierter Bezeichner: 'Bitmap'
[Fehler] Textures.pas(320): Inkompatible Typen
[Fehler] Textures.pas(321): Inkompatible Typen
[Fehler] Textures.pas(325): Inkompatible Typen
[Fehler] Textures.pas(329): Deklaration erwartet, aber 'IF' gefunden
[Fehler] Textures.pas(330): Undefinierter Bezeichner: 'PalSize'
[Fehler] Textures.pas(330): Operator oder Semikolon fehlt
[Fehler] Textures.pas(330): Anweisung erforderlich, aber Ausdruck vom Typ 'Integer' gefunden
[Fehler] Textures.pas(331): Undefinierter Bezeichner: 'Bitmap'
[Fehler] Textures.pas(331): Nicht gengend wirkliche Parameter
[Fehler] Textures.pas(331): ')' erwartet, aber ',' gefunden
[Fehler] Textures.pas(332): '.' erwartet, aber 'IF' gefunden
[Fehler] Textures.pas(332): Bezeichner redefiniert: 'Finalization'
[Fehler] Textures.pas(333): Undefinierter Bezeichner: 'Result'
[Fehler] Textures.pas(334): Inkompatible Typen
[Warnung] Textures.pas(336): Text hinter dem abschlie?nden 'END.' wird vom Compiler ignoriert
[Hinweis] Textures.pas(116): Das private-Symbol 'ImageSize' wurde deklariert, aber nie verwendet
[Fehler] Textures.pas(118): Ungengende Forward- oder External-Deklaration: 'TTextur.ClearMem'
[Hinweis] Textures.pas(119): Das private-Symbol 'SetAlpha' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(120): Das private-Symbol 'SwapRB' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(121): Das private-Symbol 'Load32' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(122): Das private-Symbol 'Load24' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(123): Das private-Symbol 'Load16' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(124): Das private-Symbol 'Load8' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(125): Das private-Symbol 'Load4' wurde deklariert, aber nie verwendet
[Hinweis] Textures.pas(126): Das private-Symbol 'ExpandTo32' wurde deklariert, aber nie verwendet
[Fehler] Textures.pas(139): Ungengende Forward- oder External-Deklaration: 'TTextur.SaveToFile'
[Fehler] Textures.pas(141): Ungengende Forward- oder External-Deklaration: 'TTextur.LoadFromResource'
[Fataler Fehler] Unit1.pas(7): Verwendete Unit 'Textures.pas' kann nicht compiliert werden
|
ich suche mal noch alternativen für jpeg... problem ist allerdings, dass mir für sowas oft die quellen fehlen.
greetz
//me
_________________ OS: Linux - RedHat 9
Delphi: Kylix 3
|
|
t/f
Beiträge: 70
|
Verfasst: So 17.08.03 17:41
ich glaub', mir fallen gleich die haare ausm kopf ... ... ich kann einfach nichts finden.
hat den noch nie auf dieser welt irgendwer opengl mit kylix programmiert? ...
... mir qualmt die birne...
greetz
//me
_________________ OS: Linux - RedHat 9
Delphi: Kylix 3
|
|
Spurius
Beiträge: 142
Win XP Home
D3 Prof, D7 Prof
|
Verfasst: Mo 18.08.03 21:49
Hallo,
ich mach grad das tut durcj aber wenn ich das prog ausführen will kommt die fehlermeldung:
undefinierter bezeichner pwglswap
woran liegts?
MfG
Spurius
|
|
Mr_T
Beiträge: 73
Win XP, Fedora Core RC 1
|
Verfasst: Di 19.08.03 11:24
@ t/f:
Der Umstieg auf openglx.pas ist nicht nötig, da die Unit OpenGl12.pas bereits
Cross-Platform ist! Dein Problem liegt in diesem Falle (leider) nicht an der Texturen-unit, sondern daran, das die Initialisierung unter Kylix (allegemain unter Linux) etwas anders verläuft... (es gibt halt keine Hanles, DeviceContexte, die Sache mit dem pixelformat ist etwas anders,usw) und die ganze Ini wird unter Linux über GLX-Funktionen gemacht...
Irgendwo hier auf meiner Platte habe ich noch eine Kylix (3 OE) init für Open Gl rumliegen, die theoretisch laufen sollte (Tat sie bei mir in der Praxis nicht, da ich scheinbar keine Vernümpftigen GLX-Treiber hatte....)
Textur-Units gibt sehr wenige, die Crossplattform laufen... mir selber fällt spontan nur eine ein, welche ich mir mal selber gezimmert habe (hatte nur eine einzige Funktion: JPEGs oder BMPs zu laden und an eine tglint-Variable zu übergeben, damit man via "glbindtexture" die Textur verwenden kann...)
Sollte ich die Init wiederfinden packe ich sie gleich mit dazu und lade den ganzen Krempel hoch... (sollteste die init eher schaffen, gib mir mal den Source, wie du es gemacht hast... bin mir wie gesagt nicht sicher, ob meine bei korrekten GLX-Treibern gefunzt hätte... bekommst dann auch die Textur-Unit als Dankeschön )
_________________ Es gibt 10 Arten Binäre Zahlen zu interpretieren: 0 und 1
Wer nicht kämpft, hat schon verloren!
|
|
StefanH
Beiträge: 1144
Win XP
D5 Standard, D7 Pers, D2005 Pers
|
Verfasst: Sa 23.08.03 16:51
Cooles Tut! Wirklich!!!
Bloß mein Würfel sieht nach Streichholzschaltel aus...
_________________ "Als es noch keine Computer gab, war das Programmieren noch relativ einfach."(Edsger W. Dijkstra)
"Ich bin nicht von Sinnen, sondern ich rede wahre und vernünftige Worte." (Paulus)
|
|
Aya
Beiträge: 1964
Erhaltene Danke: 15
MacOSX 10.6.7
Xcode / C++
|
Verfasst: Sa 23.08.03 17:10
Hi,
für alle die interresse haben.. Ich gebe am Sonntag um 20Uhr im IRC einen kleinen IRC Kurs..
Findet im QuakeNet im Channel #delphi-praxis statt.
Au'revoir,
Aya~
PS: Es wird vorrausgesetzt das die beiden OpenGL Tutorials von mir durchgearbeitet wurden
_________________ Aya
I aim for my endless dreams and I know they will come true!
|
|
10Markus
Beiträge: 33
|
Verfasst: Sa 11.10.03 16:03
Titel: Text??
Hi,
weiß jemand wie ich (ähnlich wie Canvas) mit OpenGL einen Text bei bestimmenten Koordinaten anzeigen kann? Muss keine Effekte oder so haben, nur ein Text.
_________________ Grüße,
Markus
|
|
Philer
Beiträge: 79
Win XP Home
D7 Enterprise
|
Verfasst: So 09.11.03 09:51
Ich seh nur schwarz!
k.a. wo der fehler ist ich hab alles so gemacht wie es im tut stand!
_________________ - Delphi n00b -
-Philer teh thriller-
|
|
FiedelKaystro
Hält's aus hier
Beiträge: 3
|
Verfasst: So 21.12.03 11:49
Titel: hilfe
Ich weis, das mein problem schon mehrmals aufgetreten ist aber ich komm nicht mehr weiter.
Mein code siht jetzt so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OpenGL12;
type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure InitGL; procedure DrawScene; procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean); private public end;
procedure SetDCPixelFormat(Handle: HDC);
var Form1: TForm1; h_DC: hDC; hRC: HGLRC; implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); begin InitOpenGL; h_DC:=GetDC(Handle); SetDCPixelFormat(h_DC); hRC:=wglCreateContext(h_DC); wglMakeCurrent(h_DC,hRC); InitGL; Application.OnIdle := ApplicationEvents1Idle; end;
procedure TForm1.ApplicationEvents1Idle(Sender: TObject; var Done: Boolean); begin DrawScene; Done:=False; end;
procedure TForm1.DrawScene; begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glLoadIdentity;
glTranslate(0,0,-5); glBegin(GL_QUADS); glVertex3f(1,-1,0); glVertex3f(1,1,0); glVertex3f(-1,1,0); glVertex3f(-1,-1,0); glEnd; SwapBuffers(h_DC); end;
procedure TForm1.InitGL; begin glClearColor(0,0,0,0); glClearDepth(1); glDepthFunc(GL_LESS); glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST);
glViewport(0,0,Width,Height); glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(45,Width/Height,1,100); glMatrixMode(GL_MODELVIEW); end;
procedure SetDCPixelFormat(Handle: HDC); var nPixelFormat: GLUint; const pfd: PIXELFORMATDESCRIPTOR = ( nSize: sizeof( PIXELFORMATDESCRIPTOR ); nVersion: 1; dwFlags: PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; iPixelType: PFD_TYPE_RGBA; cColorBits: 16; cRedBits: 0; cRedShift: 0; cGreenBits: 0; cBlueBits: 0; cBlueShift: 0; cAlphaBits: 0; cAlphaShift: 0; cAccumBits: 0; cAccumRedBits: 0; cAccumGreenBits: 0; cAccumBlueBits: 0; cAccumAlphaBits: 0; cDepthBits: 16; cStencilBits: 0; cAuxBuffers: 0; iLayerType: PFD_MAIN_PLANE; bReserved: 0; dwLayerMask: 0; dwVisibleMask: 0; dwDamageMask: 0 ); begin nPixelFormat:=ChoosePixelFormat(h_DC, @pfd); SetPixelFormat(h_DC,nPixelFormat,@pfd); end;
end. |
Aber nichts, ich sehe nur das normale form, kein hintergrund kein viereck.
|
|
Spieler1
Beiträge: 469
D6 Pers
|
Verfasst: So 21.12.03 14:10
Das Tutorial ist echt gut! Ich find es immer toll, wenn Leute sowas machen.
Du solltest es vielliecht noch auf eine Webseite stellen, damit es nicht in ein paar Monaten im Forum "untergeht".
Außerdem kann man es dann auch leichter über Suchmaschinen finden. Du kannst ja trotzdem einen Link hierher machen.
|
|
Raphael O.
Beiträge: 1596
VS 2013
|
Verfasst: So 21.12.03 20:21
guckst du hier:
www.koshigaya.de
|
|
Spieler1
Beiträge: 469
D6 Pers
|
Verfasst: So 21.12.03 20:58
Gut, dass es online steht, aber die Webseite braucht ewig lang zum laden (mit DSL).
|
|
G-McKree
Beiträge: 178
|
Verfasst: Fr 02.01.04 20:07
is ja alles einfacher als ich dachte
aber
1. glrotate rotiert ja alles (oder nur die cam), wie bekomm ich das hin das nur etwas rotiert?
2. kann man objecte aus Maya importieren?
|
|
andy09071978
Beiträge: 33
Win XP, Win 2000
D7 Prof
|
Verfasst: Di 06.04.04 13:59
zum Rotieren von einzelnen Objekten verwende wie bei der Gesamtrotation sin und cos.
Benötigst du mehrere bastle Dir am Besten eine Klasse, die sich selbstständig drehen kann
Gruß
PS: dann wirds schon nimmer so einfach
|
|
sCrAPt
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 12.04.04 02:59
hiho
In dem Tut steht
Zitat: | Hierfür benutzt ihr am besten für den anfang die TApplication Komponente, ein doppelklick auf den OnIdle Event der Kompo: |
Über der Application.OnIdle Procedure... Wo bitte kann ich den doppelklicken? Ich find das irgendwie nicht
MfG, sCrAPt
|
|
sCrAPt
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 12.04.04 03:20
hmm... glatt noch was:
wenn ich Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.DrawScene; begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glLoadIdentity;
glTranslate(0,0,-5); glBegin(GL_QUADS); glVertex3f(1,-1,0); glVertex3f(1,1,0); glVertex3f(-1,1,0); glVertex3f(-1,-1,0); glEnd;
SwapBuffers(h_DC); end; | compiliere kommt error: Zitat: | [Fehler] Unit1.pas(42): Undefinierter Bezeichner: 'glTranslate' |
Ich habe aber OpenGl12 bei uses eingetragen :/
MfG, sCrAPt
|
|
Raphael O.
Beiträge: 1596
VS 2013
|
Verfasst: Mo 12.04.04 11:05
unter zusätzlich gibts die Komponente "ApplicationEvents", die die Methode OnIdle bereitstellt
---
versuchs mal mit glTranslatef(x,y,z);
EDIT: achja, warum macht ihr keinen neuen Thread in einem Forum auf, wos hingehört?
ich schaue hier fast nie rein
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Mo 12.04.04 11:06
1. TApplicationEvents?
2. GlTranslate(d/f)
EDIT: Mist, zu spät. :P
|
|
|