3DEDIT
Übersicht

MatthiasBetreff: 3DEDIT |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi.
Möchte gerne mal mein 3DEDIT hier vorstellen. Dieses Programm soll eines Tages alles vereinen was mann so braucht um ein halbwegs nochmales 3DSpiel zu machen. Mesh-Bearbeitung, Terrain-Bearbeitung (MatzEdit v1.4) ,direktes anpinseln der Objecte UVW Zuweisung für jeden Vertexpunkt sowie Texturbearbeitung mit Linien, Kreise, Füllen usw Speichervormate (3Ds,x) Nagut Habe ich mir viel vorgenommen. Vieleicht hat noch jemand eine gute Idee was mann da noch reinbringen kann bzw Bugs. https://www.blitzforum.de/upload/file.php?id=625 |
||
- Zuletzt bearbeitet von Matthias am Do, Okt 26, 2006 14:33, insgesamt 5-mal bearbeitet
Kayn |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wow! ![]() Wie lange hasst du dafür gebraucht? |
||
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So 2Wochen Findest du das es schon alles zu lagsam ist?? | ||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht nett aus. Ich habe vor längerer Zeit auch mal sowas angefangen, aber ich hatte keine List mehr, weiterzumachen.
Ich finde, du solltest Polygon-Kanten(Wireframe) grundsätzlich einfarbig machen. z.B Weiß. |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum Wireframes nur in einer Farbe darstellen, jeder professionelle Modeller bietet an, für jedes Objekt eine eigene Drahtgitter Farbe auszuwählen.
Besonders bei komplexen Szenen schafft dies ein wenig übersicht. zum Prog selber: sieht auf diesem ersten Screen schon gut aus, wenn du schaffst das rein zu packen, was du dir vorgenommen hast, dann wird es mit sicherheit ein sehr gutes, nützliches Tool. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
IronstormErstklassiger Contest-Veranstalter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gutes Tool, aber:
-Wenn ich auf das Achsenkreuz eines Objektes klicke wäre es besser wenn du es per mousexspeed() verschiebst. So wie in C4D -Mach die Camerarange weiter zur Camera, ca. 0.1 oder so. Einfach um genauer heran Zoomen zu können. -Die Rechte+Mittlere Maustaste zum drehen ist etwas gewöhnungsbedürfig. Leg das doch auf die Mittlere Maustaste. Noch besser wären eigene Tastaturbelegungen. -Die verschiedenen Wireframe farben sind gut, lass sie drin. Alles in allem ist es eine gute Idee die noch umzusetzten ist. Du bist auf dem richtigen Weg, das steht schonmal fest. MFG Ironstorm |
||
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht schon gut aus.
Aber das skalieren der Fenster ist auch noch ein bisschen komisch. Machs besser so, dass man die Fenster bei gedrückter Maustaste skalieren kann. |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Vielen Dank für eure Ratschläge. Drehung auf der Mitteltaste habe ich übernommen. Die Makierten Objecte sind jetzt immer weiß Können dann aber auch in einer .Ini Datei geändert werden. CameraRange ist jetzt bei .01 und zusätzlich WASD Steuerung sowie Q&E Drehen Das mit dem Fensterscalieren werde ich auch so machen wie FreetimeCoder geschrieben hat. Die farben für die Wireframe sollen für jedes Mesh Einstelbar sein. Und für Blitzcoder gibt es dann Taste ä die macht alles Weiß. Habe jetzt wie ihr seht eine 3D Umgebung drinn. Eigentlich wolte ich erst einen Mesh Editor machen und dann die Meshes auf das Terrain setzen mit Schwerkraft und dann noch einen InselEditor(MatzEdit 1.4) dazu. Aber ich glaube da habe ich mich ein wenig übernommen. Deshalb ersteinmal: ![]() Dann Meshes Laden und setzen Scalieren, Rotieren. ![]() ![]() (Das kann aber noch ewig dauern) ??? Wo Bekomme ich 1.5MB Speicherplatz her Blitz ARCHIV Reicht nicht mehr nur noch 2550Bytes Will aber auch nichs rausschmeissen. |
||
- Zuletzt bearbeitet von Matthias am Mi, Okt 25, 2006 17:44, insgesamt einmal bearbeitet
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich könnts auf meinen Webspace hochladen. Meld dich einfach. | ||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Entweder eigener Webspace oder auf Freepasting: http://chat-blitz.de/index.php...=all_pasts (max. 50 MB).... | ||
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für denn Tipp das werde ich auf jeden fall nutzen 50MB ist extrem
viel. |
||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Auch gut | ||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
Matthias |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da bin ich wieder mit einige kleinen Verbesserungen.
https://www.blitzforum.de/upload/file.php?id=625 Mann kann jetzt auch schon die Objecte(Fahrzeuge) einrammen oder auch einfach nur anpicken. Sowie mit Strg Gruppen verschieben. Objecte sinken jetzt nicht mehr unter das Terrain ab. Mit der rechten Maustaste kann mann sich durch das Terrain bewegen und wem das zu schwierig ist der kann die WASD Tasten benutzen. Auserdem bleibt der Schiebepfeil jetzt immer gleich groß. Tipp. Mit einem Doppelklick auf ein Object hat mann es sofort am Mauszeiger und wenn mann dan die Maus-Rolltaste benutzt wird das Object mit abgesenkt. Jetzt werde ich mich um ein Ladefenster kümmern Um Objecte/Terrains Laden zu können. Auserdemm steht jetzt noch die Speicherung der Objectpositionen an. Damit das Programm einen Nutzen Bekommt. Bugs und Tipps hierher! >..... |
||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Y-Pfeil funktioniert immer noch auf die alte Art.
Aber sonst sehr toll! Du kannst ja vieleicht noch Mesh-speicherfunktionen einbauen: B3D speichern: http://www.blitzbasic.com/code...4#comments 3DS speichern: Code: [AUSKLAPPEN] ;Save Mesh 3DS, on 26/9/06
Graphics3D 640,480,0,2 AppTitle "Save Mesh 3DS" SetBuffer BackBuffer() camera=CreateCamera() ;init world light=CreateLight() RotateEntity light,45,45,0 tex=MakeTestTexture(128,128) ;new texture shape=0 ;type of shape to save Select shape Case 0 mesh1=CreateCube() : child1=CreateCube(mesh1) PositionEntity child1,1,-1,1 : RotateEntity child1,30,-30,30 Case 1 mesh1=CreateSphere(8) : child1=CreateSphere(8,mesh1) PositionEntity child1,1,1,-1 Case 2 mesh1=CreateCylinder(8,True) : child1=CreateCylinder(8,True,mesh1) PositionEntity child1,1,1,1 : RotateEntity child1,30,30,-30 Case 3 mesh1=CreateCone(8,True) : child1=CreateCone(8,True,mesh1) PositionEntity child1,1,-1,-1 Case 4 mesh1=LoadMesh("yourname.x") Case 5 mesh1=LoadAnimMesh("yourname.x") End Select EntityTexture mesh1,tex ;texture If child1 Then EntityTexture child1,tex filename$="test.3ds" ;save to 3ds file ;texfile$="test.bmp" ;optional texture filename ok=SaveMesh3DS(mesh1,filename$,texfile$) mesh2=LoadMesh(filename$) ;load new 3ds If Len(texfile$)=0 Then EntityTexture mesh2,tex ;texture PositionEntity mesh1,-2,0,5 ;position to left PositionEntity mesh2,2,0,5 ;position to right While Not KeyHit(1) RenderWorld() TurnEntity mesh1,0.3,0.2,0.1 TurnEntity mesh2,0.3,0.2,0.1 If KeyHit(17) Then wf=Not wf : WireFrame wf ;W key Text 0,0,"ok="+ok+" filename$="+filename$ Flip Wend Function SaveMesh3DS(mesh,filename$,texfile$="",diffuse=$CCCCCC) ;Saves a given mesh, or mesh hierarchy, as a 3DS file ;From "3dsinfo.txt" by Jochen Wilhelmy ;mesh=mesh/mesh hierarchy handle, filename$="name.3ds" ;texfile$=optional texture file, diffuse=optional diffuse color Local file,piv,matname$,mnlen,tflen,ent,surf,si,mi,objname$,onlen Local tssize,tmsize,tfsize,tosize,tcsize,tvsize,otsize Local eobjsize,ematsize,editsize,i file=WriteFile(filename$) If Not file Return False ;fail code piv=CreatePivot() ;pivot to tform vertices ;calculate chunk sizes and file size matname$="Material" mnlen=Len(matname$)+1 tflen=Len(texfile$)+1 ent=mesh While ent For si=1 To CountSurfaces(ent) surf=GetSurface(ent,si) mi=mi+1 : If mi<10 Then objname$="mesh0"+mi Else objname$="mesh"+mi onlen=Len(objname$)+1 tssize=6+(CountTriangles(surf)*4) ;sizeof(Tri_Smooth) tmsize=8+mnlen+(CountTriangles(surf)*2) ;sizeof(Tri_Material) tfsize=8+(CountTriangles(surf)*4*2)+tmsize+tssize ;sizeof(Tri_FaceList) tosize=8+(CountVertices(surf)*2) ;sizeof(Tri_VertexOptions) tcsize=8+(CountVertices(surf)*2*4) ;sizeof(Tri_MappingCoords) tvsize=8+(CountVertices(surf)*3*4) ;sizeof(Tri_VertexList) otsize=6+tvsize+tcsize+tosize+54+tfsize ;sizeof(Object_TriMesh) eobjsize=eobjsize+(6+onlen+otsize) ;sizeof(All_Edit_Objects) Next ent=NextChild(ent) Wend ematsize=6+(6+mnlen)+(15*3)+(14*6)+10 ;sizeof(Edit_Material) If tflen>1 Then ematsize=ematsize+(6+(6+tflen)) ;Mat_TextureMap1 editsize=6+10+ematsize+10+eobjsize ;sizeof(Edit3DS) ;Main3DS Chunk WriteShort file,$4D4D ;wChunkID, Main3DS WriteInt file,6+10+editsize ;dwChunkSize, filesize ;Version3DS Chunk WriteShort file,$0002 ;wChunkID, Version3DS WriteInt file,10 ;dwChunkSize, sizeof(Version3DS) WriteInt file,3 ;ChunkData, dwVersion3DS ;Edit3DS Chunk, Main3DS Subchunk WriteShort file,$3D3D ;wChunkID, Edit3DS WriteInt file,editsize ;dwChunkSize, editsize=6+ematsize+eobjsize ;Edit_MeshVersion, Edit3DS Subchunk WriteShort file,$3D3E ;wChunkID, Edit_MeshVersion WriteInt file,10 ;dwChunkSize, sizeof(Edit_MeshVersion) WriteInt file,3 ;ChunkData, dwMeshVersion ;Edit_Material Chunk, Edit3DS Subchunk WriteShort file,$AFFF ;wChunkID, Edit_Material WriteInt file,ematsize ;dwChunkSize, ematsize=6+(6+mnlen)+(15*3) ;Mat_Name01 Chunk, Edit_Material Subchunk WriteShort file,$A000 ;wChunkID, Mat_Name01 WriteInt file,6+mnlen ;dwChunkSize, sizeof(Mat_Name01) WriteStringAscii(file,matname$) ;ChunkData, material name WriteByte file,0 ;ChunkData, Ascii-z null byte ;Mat_Ambient Chunk, Edit_Material Subchunk WriteShort file,$A010 ;wChunkID, Mat_Ambient WriteInt file,15 ;dwChunkSize, sizeof(Mat_Ambient) WriteShort file,$0011 ;wChunkID, bRGB WriteInt file,9 ;dwChunkSize, sizeof(bRGB) WriteRGBColor(file,$666666) ;ChunkData, ambient color ;Mat_Diffuse Chunk, Edit_Material Subchunk WriteShort file,$A020 ;wChunkID, Mat_Diffuse WriteInt file,15 ;dwChunkSize, sizeof(Mat_Diffuse) WriteShort file,$0011 ;wChunkID, bRGB WriteInt file,9 ;dwChunkSize, sizeof(bRGB) WriteRGBColor(file,diffuse) ;ChunkData, diffuse color ;Mat_Specular Chunk, Edit_Material Subchunk WriteShort file,$A030 ;wChunkID, Mat_Specular WriteInt file,15 ;dwChunkSize, sizeof(Mat_Specular) WriteShort file,$0011 ;wChunkID, bRGB WriteInt file,9 ;dwChunkSize, sizeof(bRGB) WriteRGBColor(file,$FFFFFF) ;ChunkData, specular color ;Mat_Shininess Chunk, Edit_Material Subchunk WriteShort file,$A040 ;wChunkID, Mat_Shininess WriteInt file,14 ;dwChunkSize, sizeof(Mat_Shininess) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,75 ;ChunkData, Shininess ;Mat_ShininessStrength Chunk, Edit_Material Subchunk WriteShort file,$A041 ;wChunkID, Mat_ShininessStrength WriteInt file,14 ;dwChunkSize, sizeof(Mat_ShininessStrength) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,20 ;ChunkData, ShininessStrength ;Mat_Transparency Chunk, Edit_Material Subchunk WriteShort file,$A050 ;wChunkID, Mat_Transparency WriteInt file,14 ;dwChunkSize, sizeof(Mat_Transparency) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,0 ;ChunkData, Transparency ;Mat_TransparencyFalloff Chunk, Edit_Material Subchunk WriteShort file,$A052 ;wChunkID, Mat_TransparencyFalloff WriteInt file,14 ;dwChunkSize, sizeof(Mat_TransparencyFalloff) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,0 ;ChunkData, TransparencyFalloff ;Mat_ReflectionBlur Chunk, Edit_Material Subchunk WriteShort file,$A053 ;wChunkID, Mat_ReflectionBlur WriteInt file,14 ;dwChunkSize, sizeof(Mat_ReflectionBlur) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,0 ;ChunkData, ReflectionBlur ;Mat_SelfIllumination Chunk, Edit_Material Subchunk WriteShort file,$A084 ;wChunkID, Mat_SelfIllumination WriteInt file,14 ;dwChunkSize, sizeof(Mat_SelfIllumination) WriteShort file,$0030 ;wChunkID, wPercent WriteInt file,8 ;dwChunkSize, sizeof(wPercent) WriteShort file,0 ;ChunkData, SelfIllumination ;Edit_WireThickness Chunk, Edit_Material Subchunk WriteShort file,$A087 ;wChunkID, Edit_WireThickness WriteInt file,10 ;dwChunkSize, sizeof(Edit_WireThickness) WriteFloat file,1 ;fWireThickness ;Mat_TextureMap1 Chunk, Edit_Material Subchunk If tflen>1 WriteShort file,$A200 ;wChunkID, Mat_TextureMap1 WriteInt file,6+(6+tflen) ;dwChunkSize, sizeof(Mat_TextureMap1) ;Mat_TextureFilename, Mat_TextureMap1 Subchunk WriteShort file,$A300 ;wChunkID, Mat_TextureFilename WriteInt file,6+tflen ;dwChunkSize, sizeof(Mat_TextureFilename) WriteStringAscii(file,texfile$) ;ChunkData, texture filename WriteByte file,0 ;ChunkData, Ascii-z null byte EndIf ;Edit_OneUnit Chunk, Edit3DS Subchunk WriteShort file,$0100 ;wChunkID, Edit_OneUnit WriteInt file,10 ;dwChunkSize, sizeof(Edit_OneUnit) WriteFloat file,1 ;fOneUnit ;calculate each mesh object chunk sizes ent=mesh : mi=0 While ent For si=1 To CountSurfaces(ent) surf=GetSurface(ent,si) mi=mi+1 : If mi<10 Then objname$="mesh0"+mi Else objname$="mesh"+mi onlen=Len(objname$)+1 tssize=6+(CountTriangles(surf)*4) ;sizeof(Tri_Smooth) tmsize=8+mnlen+(CountTriangles(surf)*2) ;sizeof(Tri_Material) tfsize=8+(CountTriangles(surf)*4*2)+tmsize+tssize ;sizeof(Tri_FaceList) tosize=8+(CountVertices(surf)*2) ;sizeof(Tri_VertexOptions) tcsize=8+(CountVertices(surf)*2*4) ;sizeof(Tri_MappingCoords) tvsize=8+(CountVertices(surf)*3*4) ;sizeof(Tri_VertexList) otsize=6+tvsize+tcsize+tosize+54+tfsize ;sizeof(Object_TriMesh) eobjsize=6+onlen+otsize ;sizeof(Edit_Object) ;position/rotate pivot to tform surface vertices PositionEntity piv,EntityX(ent,1),EntityY(ent,1),EntityZ(ent,1),1 RotateEntity piv,EntityPitch(ent,1),EntityYaw(ent,1),EntityRoll(ent,1),1 ;Edit_Object Chunk, Edit3DS Subchunk WriteShort file,$4000 ;wChunkID, Edit_Object WriteInt file,eobjsize ;dwChunkSize, eobjsize=6+onlen+otsize WriteStringAscii(file,objname$) ;ChunkData, object name WriteByte file,0 ;ChunkData, Ascii-z null byte ;Object_TriMesh Chunk, Edit_Object Subchunk WriteShort file,$4100 ;wChunkID, Object_TriMesh WriteInt file,otsize ;dwChunkSize, otsize=6+tvsize+tcsize+54+tfsize ;Tri_VertexList Chunk, Object_TriMesh Subchunk WriteShort file,$4110 ;wChunkID, Tri_VertexList WriteInt file,tvsize ;dwChunkSize, tvsize=8+(nVerts*3*4) WriteShort file,CountVertices(surf) ;ChunkData, wVerticesTotal For i=0 To CountVertices(surf)-1 ;switch y and z axis TFormPoint VertexX(surf,i),VertexY(surf,i),VertexZ(surf,i),piv,0 WriteFloat file,TFormedX() ;fVertexX WriteFloat file,TFormedZ() ;fVertexY WriteFloat file,TFormedY() ;fVertexZ Next ;Tri_MappingCoords Chunk, Object_TriMesh Subchunk WriteShort file,$4140 ;wChunkID, Tri_MappingCoords WriteInt file,tcsize ;dwChunkSize, tcsize=8+(nVerts*2*4) WriteShort file,CountVertices(surf) ;ChunkData, wVerticesTotal For i=0 To CountVertices(surf)-1 ;invert v coord WriteFloat file,VertexU(surf,i) ;fVertexU WriteFloat file,-VertexV(surf,i) ;fVertexV Next ;Tri_VertexOptions Chunk, Object_TriMesh Subchunk WriteShort file,$4111 ;wChunkID, Tri_VertexOptions WriteInt file,tosize ;dwChunkSize, tosize=8+(nVerts*2) WriteShort file,CountVertices(surf) ;ChunkData, wVerticesTotal For i=0 To CountVertices(surf)-1 ;invert v coord WriteShort file,$0700 ;AllVertexOptions Next ;Tri_Local Chunk, Object_TriMesh Subchunk WriteShort file,$4160 ;wChunkID, Tri_Local WriteInt file,54 ;dwChunkSize, sizeof(Tri_Local) For i=0 To 3 ;X,Y,Z,Origin If i=0 Then WriteFloat file,1 Else WriteFloat file,0 ;fLocal1 If i=1 Then WriteFloat file,1 Else WriteFloat file,0 ;fLocal2 If i=2 Then WriteFloat file,1 Else WriteFloat file,0 ;fLocal3 Next ;Tri_FaceList Chunk, Object_TriMesh Subchunk WriteShort file,$4120 ;wChunkID, Tri_FaceList WriteInt file,tfsize ;dwChunkSize, tfsize=8+(nTris*4*2)+tmsize+tssize WriteShort file,CountTriangles(surf) ;ChunkData, wTrianglesTotal For i=0 To CountTriangles(surf)-1 ;invert face order WriteShort file,TriangleVertex(surf,i,2) ;wTriangleVertexA WriteShort file,TriangleVertex(surf,i,1) ;wTriangleVertexB WriteShort file,TriangleVertex(surf,i,0) ;wTriangleVertexC WriteShort file,$0407 ;wFaceFlags Next ;Tri_Material Chunk, Tri_FaceList Subchunk WriteShort file,$4130 ;wChunkID, Tri_Material WriteInt file,tmsize ;dwChunkSize, tmsize=8+mnlen+(nTris*2) WriteStringAscii(file,matname$) ;ChunkData, material name WriteByte file,0 ;ChunkData, Ascii-z null byte WriteShort file,CountTriangles(surf) ;ChunkData, wTrianglesAssigned For i=0 To CountTriangles(surf)-1 WriteShort file,i ;wTriangleIndex Next ;Tri_Smooth Chunk, Tri_FaceList Subchunk WriteShort file,$4150 ;wChunkID, Tri_Smooth WriteInt file,tssize ;dwChunkSize, tssize=6+(nTris*4) For i=0 To CountTriangles(surf)-1 WriteInt file,1 ;dwTriangleSmoothGroup Next Next ent=NextChild(ent) Wend FreeEntity piv CloseFile file Return True ;success code End Function Function WriteStringAscii(file,ascii$) ;file=file handle, ascii$=ascii string Local i,char$ For i=1 To Len(ascii$) char$=Mid(ascii$,i,1) WriteByte(file,Asc(char$)) Next End Function Function WriteRGBColor(file,rgb) ;file=file handle, rgb=3-byte value WriteByte(file,(rgb And $FF0000) Shr 16) ;r WriteByte(file,(rgb And $00FF00) Shr 8) ;g WriteByte(file,(rgb And $0000FF)) ;b End Function Function NextChild(ent) ;Returns next child of entity as if it was on the same hierarchy level ;"NextChild(entity)", by Beaker If CountChildren(ent)>0 Return GetChild(ent,1) EndIf Local foundunused=False Local foundent=0,parent,sibling While foundunused=False And ent<>0 parent=GetParent(ent) If parent<>0 If CountChildren(parent)>1 If GetChild(parent,CountChildren(parent))<>ent For siblingcnt=1 To CountChildren(parent) sibling=GetChild(parent,siblingcnt) If sibling=ent foundunused=True foundent=GetChild(parent,siblingcnt+1) EndIf Next EndIf EndIf EndIf ent=parent Wend Return foundent End Function Function MakeTestTexture(width,height) Local texture,x,y,rgb texture=CreateTexture(width,height) LockBuffer(TextureBuffer(texture)) For y=0 To TextureHeight(texture)-1 For x=0 To TextureWidth(texture)-1 rgb=y+(y*256)+(x*256^2) ;gradient color WritePixelFast x,y,rgb,TextureBuffer(texture) Next Next UnlockBuffer(TextureBuffer(texture)) SetBuffer TextureBuffer(texture) Color 255,255,255 : Oval 40,40,30,30 Color 0,0,0 : Text 50,50,"3DS" : Color 255,255,255 SetBuffer BackBuffer() Return texture End Function Sorry ich weiß nicht mehr woher ich den Code hab. |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group