Schatten
Übersicht

![]() |
BlitzcoderNewsposterBetreff: Schatten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo.
Ich habe mich mal an einer Schattenengine versucht und erstmal ohne Funktionen gecodet, damit es est mal geht: Code: [AUSKLAPPEN] Graphics3D 1024,768,0,2 cam=createcamera() PositionEntity cam,0,2,-12 cam2=createcamera() CameraViewport cam2,0,0,200,200 PositionEntity cam2,0,20,0 boden=createplane() PositionEntity boden,0,-2.4,0 EntityColor boden,255,50,50 schatten=createcone(30) EntityColor schatten,0,0,0 schattenobjekt=createcone(100) ScaleEntity schattenobjekt,1.1,1.1,1.1 EntityColor schattenobjekt,200,130,0 PointEntity cam,schattenobjekt PointEntity cam2,schattenobjekt licht=createsphere(100) PositionEntity licht,0,2,3 ScaleEntity licht,0.3,0.3,0.3 EntityColor licht,0,255,0 SetBuffer BackBuffer() Repeat If KeyDown(200) Then MoveEntity licht,0,0,0.1 If KeyDown(208) Then MoveEntity licht,0,0,-0.1 If KeyDown(205) Then MoveEntity licht,0.1,0,0 If KeyDown(203) Then MoveEntity licht,-0.1,0,0 surfaces=countsurfaces(schatten) For a=1 To surfaces surf=getsurface(schatten,a) punkte=countvertices(surf) For b=0 To (punkte-1) x#=(VertexX#(surf,b)-EntityX#(licht))/10 z#=(VertexZ#(surf,b)-EntityZ#(licht))/10 While VertexY(surf,b)>(-2) VertexCoords surf,b,VertexX(surf,b)+x,VertexY(surf,b)-0.2,z+vertexz(surf,b) If KeyDown(1) Then End Wend Next Next UpdateWorld RenderWorld ;FPS----------------------------------- If (MilliSecs()-fpszeit)<200 Then ; fps=fps+1 ; Else ; fpsanzeige=fps*5 ; fpszeit=MilliSecs() ; fps=0 ; EndIf ; Text 0,0,"FPS: "+fpsanzeige ; ;FPS----------------------------------- FreeEntity(schatten) schatten=createcone(100) EntityColor schatten,0,0,0 Flip Until KeyDown(1) End Hat jemand eine Idee, wie man alle vertices wieder an ihre ausgangsposition bringen kann ohne das createsphere() in jeder schleife. Und wie bekommt man das hin, dass der auch an seitenwänden da ist, der schatten. Kann man irgendwie collisionen fur vertex points machen? Wenn ja, wie? Ich hoffe der Code ist einiogermaßen verständlich :lol: MfG Blitzcoder |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Beschäftige dich erst mit allgemeiner Projektion von Vertices und Triangles bevor du dich an ein Schattensystem willst ... wenn du noch nicht einmal weisst, wie du Punkte auf Flächen bestimmen kannst wird das nichts (und wenn du es mit Linepick machst: spar dir die Mühe, das wird um welten zu langsam)
PS: Ich bin mir bewusst, dass das böse klingt. Jedoch handelt es sich hierbei um ein expertenproblem, das sehr viel matheverständnis und auch wissen um 3D projektion verlangt und definitiv nichts für normale B3D programmierer ist. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Okay.
Ist mir schon klar, dass es nich böse gemeint war. schade. Blitzcoder |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group