3D ENGINE

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

3D ENGINE

Beitrag von a14xerus »

Ich weiß, das das bestimmt schon hier mal angesproceh nwurde.. habe abernichts konkretes gefunden.
Und in die Hilfe habe ich auch nicht geguckt.
Deswegen:
Ich benutze die eingebaute 3d engine aus pb udn habe bisher folgenden code....
(bitte nihct lachen, mein 1. 3d code:)

Code: Alles auswählen

If InitEngine3D() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf
If InitSprite() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 

If InitSound() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
If InitMouse() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
If InitKeyboard() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 

Enumeration
  #Camera_01
  
  #textur_boden
EndEnumeration
OpenScreen(800,600,32,"Game")

Add3DArchive("data",#PB_3DArchive_FileSystem)
LoadTexture(#textur_boden,"boden.jpg")

SetFrameRate(55)
FlipBuffers()

CreateCamera(#Camera_01,0,0,100,100)
AmbientColor(RGB(255,0,0))
Fog($C0C0C0,50,100,500)

Repeat
  ExamineMouse()
  ExamineKeyboard()
  
  RenderWorld()
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
noch pasiert da ja nichts, das ist mir klar, aber warum wird garnichst angezeigt... auch nicht das ambientcolor und der fog?
ich bin in dem gebiet totaler noob, und würde mich überjede antwort freuen. danke
p.s. hab auch schon in die hilfe geguckt, aber da is nur so ein riesgier code, der auchnoch eine include verwendet, wo ich übrhaupt nich durchblicke
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Was anderes nebenbei: Das hier:
a14xerus hat geschrieben:

Code: Alles auswählen

If InitEngine3D() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
If InitSprite() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 

If InitSound() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
If InitMouse() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
If InitKeyboard() = 0 : MessageRequester("Error", "Fehler bei der Initialation", #MB_OK|#MB_ICONERROR) : End : EndIf 
könntest du so einstampfen:

Code: Alles auswählen

If InitEngine3D()*InitSprite()*InitSound()*InitMouse()*InitKeyboard() = 0
     MessageRequester("Error", "Fehler bei der Initalisierung!", #MB_ICONERROR)
EndIf
Der Clou: Du multiplizierst alle Rückgabewerte. Sollte ein Rückgabewert 0 sein ergibt das gesamte Ergebis null.
Mathematisch gesehen: Null mal irgendeine-Zahl ergibt immer null.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

cooler tipp, das iwas mal 0 immer null ist, wusste ich ja, aber ich bin nie auf die idee gekommen das man die rückgabewerte multiplizieren kann ;-) :allright:
THX
aber meien frage ist damit noch nicht beantwortet
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

@AND51
geht aber nur wenn die reihenfolge von bestimmten initialisierungen egal ist. sicherer ist z.b.

Code: Alles auswählen

If Init_X() AND Init_Y() AND Init_Z()
Else:End
EndIf
weil AND auch zwischendrin abbricht, sobald was nicht klappt
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ihr achtet doch sonst auf Geschwindigkeit, warum also diese unnötigen
Multiplikationen. Nur um beim SourceCode schreiben Zeit zu sparen :freak:

Und wenn ein Fehler auftaucht, muß man es wieder zerpflücken, damit man
die Ursache finden kann :mrgreen:
Zeitgewinn futsch :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

Trotzdem wäre ich über eine Antwort froh
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

Add3DArchive("data",#PB_3DArchive_FileSystem) 
Damit haste nen Pfad gesetzt. Aber wo setzte die Welt?
Ich hab zwar keine Ahnung von diesem pseudo 3D Zeugs, aber das hier nur
ein schwarzer Bildschirm kommt, leuchtet auch mir ein.

Ohne die Daten, ist das ganze aber kein testbarer Code. Kann ich als 3D Laie
also nicht viel testen, sry :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

ja ich habe noch keine Welt, das ist mir schon klar, aber wie ich diese überhaupt setze, davon allein habe ich schon keine Ahnung...
und ich dachte, das wenigstens die AmbientColor schon angezeigt wird..
wahrscheinlich muss ich erst wenigstens eine texture o.ä. einfügen, aber ich weiß nicht wie..
geladen ist das eine bild ja.. aber wie zeichne ich es... oder eben wie zeige ich überhautp was auf den bildschirm an
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

hat denn hier keier ahnung von diesem 3d Kram..
ich weiß, hier hat niemand anspruch auf hilfe, aber irgendjmd muss doch was davon könne (hab auch schon bei robsite und purearea geguckt...)
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ich würd dir gern helfen, hab aber kein plan.
so wie ich mir das vorstelle, mußt du entweder was laden was du anderswo erstellt hast, oder du baust manuell meshes, mit koordinaten-gefrimel
:| ich dachte eigentlich, hier gäb's einige die sich damit auskennen. aber vielleicht haben die einfach kein bogg.
my pb stuff..
Bild..jedenfalls war das mal so.
Antworten