innerhalb einer Sphere (3D)
-
- Beiträge: 16
- Registriert: 31.01.2011 12:23
innerhalb einer Sphere (3D)
Hallo
Ich habe ein Material einem Sphere zugewiesen.
Nun sehe ich das Material nicht mehr, sobald sich die Kamera innerhalb der Sphere befindet.
Kann man das irgenwie beeinflussen, so dass ich eine Textur auch dann sehe, wenn sich die Kamera innerhalb des Sphere's befindet?
Ich habe ein Material einem Sphere zugewiesen.
Nun sehe ich das Material nicht mehr, sobald sich die Kamera innerhalb der Sphere befindet.
Kann man das irgenwie beeinflussen, so dass ich eine Textur auch dann sehe, wenn sich die Kamera innerhalb des Sphere's befindet?
Re: innerhalb einer Sphere (3D)
Moin!
Es wäre uns eine Hilfe, stelltest Du Deinen Quelltext ein, damit wir uns überhaupt sinnvoll damit befassen können.
Gruß - WPö
Es wäre uns eine Hilfe, stelltest Du Deinen Quelltext ein, damit wir uns überhaupt sinnvoll damit befassen können.
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
-
- Beiträge: 16
- Registriert: 31.01.2011 12:23
Re: innerhalb einer Sphere (3D)
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Mesh (Skeleton Animation)
;
; (c) 2002 - Fantaisie Software
;
; ------------------------------------------------------------
;
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
#PanoMesh = 0
#PanoTexture = 0
#Pano = 0
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
LoadTexture(#PanoTexture, "darlux.jpg")
CreateMaterial(0, TextureID(#PanoTexture))
CreateSphere(#PanoMesh,50,90,90)
CreateEntity(#Pano, MeshID(#PanoMesh), MaterialID(0))
SetEntityMaterial(#Pano, MaterialID(0))
DisableMaterialLighting(0, 1)
CreateCamera(0, 0, 0, 100, 100)
CameraLocate(0, 0, 40, 150)
CameraBackColor(0, RGB(0, 0, 128))
Repeat
Screen3DEvents()
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Left)
KeyX = -1
ElseIf KeyboardPushed(#PB_Key_Right)
KeyX = 1
Else
KeyX = 0
EndIf
If KeyboardPushed(#PB_Key_Up)
KeyY = -1
ElseIf KeyboardPushed(#PB_Key_Down)
KeyY = 1
Else
KeyY = 0
EndIf
If KeyboardPushed(#PB_Key_PageUp)
RollZ = 3
Else
RollZ = 0
EndIf
EndIf
If ExamineMouse()
MouseX = -MouseDeltaX()/10
MouseY = -MouseDeltaY()/10
EndIf
RotateEntity(#Pano, 0, 0.5, 0, #PB_Relative)
RotateCamera(0, MouseY, MouseX, RollZ, #PB_Relative)
MoveCamera (0, KeyX, 0, KeyY)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf
End
Das ganze möchte ich für die Darstellung von Panoramen verwenden.
Dazu könnte ich die "SkyBox" verwenden. Dann kann ich aber das Panorama später nicht zu einem anderen Panorama überblenden.
Re: innerhalb einer Sphere (3D)
Bedaure, "d3dx9_42.dll wurde nicht gefunden". Mit 3D mache ich sowieso nichts. DirectX ist längst auf meinem System. Deshalb weiß ich nicht recht, was da schon wieder angemeckert wird. Vielleicht kann Dir sonst jemand helfen.
Übrigens ändere mal die Zeile 11 in o.ä., denn nicht jeder wird sofort diese Bibliotheken in den Beispielen finden.
Gruß - WPö
Übrigens ändere mal die Zeile 11 in
Code: Alles auswählen
IncludeFile "D:\Programme\PureBasic\Examples\Sources\Screen3DRequester.pb"
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
- 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
Re: innerhalb einer Sphere (3D)
Zeile 11 lieber in:
dann klappt es auch mit dem Nachbarn 
Code: Alles auswählen
IncludeFile #PB_Compiler_Home + "Examples\Sources\Screen3DRequester.pb"

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: innerhalb einer Sphere (3D)
Danke, Thomas. War nur zu faul, die Konstante 'rauszusuchen.ts-soft hat geschrieben:Zeile 11 lieber in:dann klappt es auch mit dem NachbarnCode: Alles auswählen
IncludeFile #PB_Compiler_Home + "Examples\Sources\Screen3DRequester.pb"
Gruß - WPö
Ich glaube nur der Statistik, die ich selbst gefälscht habe!
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
Meine Netzpräsenz: WPö.de
PB5.31 auf LMDE und Pentium T7200 2,00GHz, 4GB DDR2, ATI X1400.
- 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
Re: innerhalb einer Sphere (3D)
Braucht man doch gar nichtWPö hat geschrieben:Danke, Thomas. War nur zu faul, die Konstante 'rauszusuchen.

Das es eine Compilerdirektive ist weiß man ja, also #PB_COMPILER_ tippen und gucken was Autocomplete so anbietet

Gruß
Thomas
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: innerhalb einer Sphere (3D)
Moin,
die DLL meckert PB an, weil es keine Directx10 kann. Üblicherweise alle Win7. Die DLL aus dem Internet ziehen und in den Ordner mit dem PB-Code packen. Dann läuft es.
die DLL meckert PB an, weil es keine Directx10 kann. Üblicherweise alle Win7. Die DLL aus dem Internet ziehen und in den Ordner mit dem PB-Code packen. Dann läuft es.
Gruß, Schobaer
- 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
Re: innerhalb einer Sphere (3D)
DirectX 9 c installieren, per WebInstaller bei Microsoft. Benötigt fast jedes Spiel, ist also auf fast jedem Win7 System vorhanden,
wird aber nicht autom. mit dem OS installiert.
/edit
Hier der Download:
http://www.microsoft.com/downloads/de-d ... 6652cd92a3
Diese DLL wird nicht einzeln von MS angeboten und sollte auch niemals aus irgendwelchen dubiosen Quellen installiert werden!
Es ist kein Problem, DirectX 9, 10 und 11 gleichzeitig auf dem System zu haben!
wird aber nicht autom. mit dem OS installiert.
/edit
Hier der Download:
http://www.microsoft.com/downloads/de-d ... 6652cd92a3
Diese DLL wird nicht einzeln von MS angeboten und sollte auch niemals aus irgendwelchen dubiosen Quellen installiert werden!
Es ist kein Problem, DirectX 9, 10 und 11 gleichzeitig auf dem System zu haben!
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: innerhalb einer Sphere (3D)
Das Problem ist das Faces immer nur in eine Richtung "schauen" also nur von einer Seite Sichtbar ist, um diese in beide Seiten Sichtbar zu machen muss man, zumindest in Purebasic, 2 Faces, also für jede Sichtrichtung eine, erstellen.
Da es von Purebasic aus keinen befehl gibt um die Faces zu flippen wäre es wohl am einfachsten mit einem Programm wie Blender einfach eine Kugel zu erstellen in der die Faces von Haus aus geflippt (Da gibts nen Befehl der heißt FlipFaces) sind und dann einfach in Purebasic als Kugel zu laden.
Da es von Purebasic aus keinen befehl gibt um die Faces zu flippen wäre es wohl am einfachsten mit einem Programm wie Blender einfach eine Kugel zu erstellen in der die Faces von Haus aus geflippt (Da gibts nen Befehl der heißt FlipFaces) sind und dann einfach in Purebasic als Kugel zu laden.
Purebasic 5.10 | Kubuntu 12.04 (64 bit) | Opera 12.01 | Nvidia GT 9800
Xubuntu 12.04 (64 bit) | Intel HD Graphis (Onboard)
Xubuntu 12.04 (64 bit) | Intel HD Graphis (Onboard)