Wirefarme *gelöst*
Übersicht

![]() |
FuchsiBetreff: Wirefarme *gelöst* |
![]() Antworten mit Zitat ![]() |
---|---|---|
Moin,
Gibt es eine Möglichkeit, das Drahtgittermodell (Wireframe) eines Meshes bzw. eines Entitys undurchsichtig zu machen? MfG Fuchsi |
||
- Zuletzt bearbeitet von Fuchsi am Sa, Okt 14, 2006 20:36, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie meinst du das genau?
Wenn du in Wireframe gehst, dann erscheinen nur die Wires also das Drahtgitter. Etwas anderes soll da ja nicht erscheinen. Wenn du mehr willst, musst du spezielle texturen nehmen oder mehrfach rendern und mit dem CameraClsMode spielen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, werde mal nicht umhin kommen eine Textur zu verwenden.
Trotzdem Danke. |
||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wofür brauchst du das denn?
Wenn du ein Mesh mit entityalpha durchsichtig machst, verschwindet auch das Drahtgitter. |
||
"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 |
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man die Wireframeansicht einschaltet, sieht man zwar das Drahtgitter
allerdings kann man dann durch alle Objekte hindurchsehen. Allerdings hab ich es, auf Dreamores Rat hin, mit einer Textur gelöst. |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
In dem Falle wo du das nicht willst mit dem Durchsehen wäre wie gesagt auch ein "Multi Pass" render möglich, bei dem du erst ohne WireFrame renderst und danach den CameraCLSMode umstellst auf false,true (also depth buffer löschen, colorbuffer net) und dann mit wireframe true nochmal renderst. Bin mir jetzt nicht ganz sicher das die flags so stimmen aber prinzipiell müsste das eigentlich das drahtgitter über deine texturierten objekte malen. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Frage ist dann nur was dann wirklich schneller wäre. | ||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hat ich noch aufm PC:
Also bei mir gibts wegen der Geschwinigkeit keine Pobleme, wie das bei anderen Meshobjekten aussieht weiß ich nicht. Code: [AUSKLAPPEN] Graphics3D 800,600, 0,2
SetBuffer BackBuffer() Kamera=CreateCamera() PositionEntity Kamera,0,0,-10 Sphere=CreateSphere(20) ;Ich hab jetzt mal viele Polys gemacht ;-) cube=CreateCube() PositionEntity Cube,2,2,0 cylinder=CreateCylinder(100) PositionEntity cylinder,-2,-2,0 wireimage=CreateImage(GraphicsWidth(),GraphicsHeight()) MaskImage wireimage,0,0,0 While Not KeyHit(1) Cls EntityColor Sphere,255,0,0 WireFrame 1 AmbientLight 255,0,0 TurnEntity Sphere,0,1,0 TurnEntity cube,1,1,0 TurnEntity cylinder,-1,-1,0 RenderWorld CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),0,0,BackBuffer(),ImageBuffer(wireimage) Cls AmbientLight 255,255,255 EntityColor Sphere,255,255,255 WireFrame 0 RenderWorld DrawImage wireimage,0,0 Flip FreeImage wireimage wireimage=CreateImage(GraphicsWidth(),GraphicsHeight()) MaskImage wireimage,0,0,0 Wend End Ist nicht so wie Dreamora das vorschlägt, ich zeichne auf ein Bild, und zeige das dann an. |
||
"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 |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
@FreetimeCoder:
so einen Code hab ich in ähnlicher Form irgendwo gefunden; weiss net ob´s hilfreich ist, vll kannste damit ja was anfangen Fuchsi... Code: [AUSKLAPPEN] Graphics3D 640,480,16,2
cam=CreateCamera() ;MoveEntity cam,0,10,0 ;TurnEntity cam,45,-15,30 l=CreateLight() cube = CreateCube() PositionEntity cube,0,0,10 ScaleEntity cube,2,2,2 EntityAlpha cube,0.2 surface = GetSurface(cube,1) vertex = CountVertices(surface) For i=1 To vertex-1 Line3D VertexX#(surface,i-1),VertexY#(surface,i-1),VertexZ#(surface,i-1), VertexX#(surface,i),VertexY#(surface,i),VertexZ#(surface,i),cube Next While 1 If KeyHit(1) End TurnEntity cube,1,1,1 RenderWorld Flip Wend Function Line3D(x1,y1,z1,x2,y2,z2,parent%=0) Entity = CreateCube(parent) EntityColor Entity,0,255,0 EntityAlpha Entity,0.4 If x1<>0 And y1<>0 And z1<>0 Or x2<>0 And y2<>0 And z2<>0 dx#=x2 - x1 dy#=y2 - y1 dz#=z2 - z1 ln#=Sqr(dx^2+dy^2+dz^2) PositionMesh Entity, 0, 0, 1 AlignToVector Entity,dx,dy,dz,0 PositionEntity Entity,x1,y1,z1 ScaleEntity Entity,0.01,0.01,ln/2 dx=dx/ln dy=dy/ln dz=dz/ln EndIf End Function |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Blackspider:
Deinen Code kann man gut gebrauchen, wenn man alle Linien zeigen will. Bei meinem werden nur die Polygone gezeigt, die nicht durch das Backfaceculling unsichtbar sind. |
||
"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 |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hier mal ein code, mit dem du alle wireframes anzeigst, ohne es durchsichtig zu machen.
Sieht allerdings ziemlich komisch aus ^^ Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
SetBuffer BackBuffer() Type Mesh Field obj End Type cam=CreateCamera() cube=CreateCube() PositionEntity cube,0,0,10 RegisterMesh(cube) EntityAlpha cube,.5 While Not KeyDown(1) Cls TurnEntity cube,1,1,0 UpdateWorld RenderWorld Color 255,255,255 DrawLines(cam) Flip Wend Function DrawLines(cam) Local vx[3] Local vy[3] For x.Mesh=Each Mesh For faces=1 To CountSurfaces(x\obj) surf=GetSurface(x\obj,faces) maxtri=CountTriangles(surf)-1 For tris=0 To maxtri For do=0 To 2 tvx#=VertexX(surf,TriangleVertex(surf,tris,do)) tvy#=VertexY(surf,TriangleVertex(surf,tris,do)) tvz#=VertexZ(surf,TriangleVertex(surf,tris,do)) TFormPoint tvx#,tvy#,tvz#,x\obj,0 CameraProject cam,TFormedX(),TFormedY(),TFormedZ() rx=ProjectedX() ry=ProjectedY() vx[do]=rx vy[do]=ry Next For do=0 To 2 do2=(do+1) Mod 3 vx0=vx[do] vy0=vy[do] vx1=vx[do2] vy1=vy[do2] Line vx0,vy0,vx1,vy1 Next If KeyDown(57) And tris>0 Then RuntimeError "" Next Next Next End Function Function RegisterMesh(mesh) x.Mesh=New Mesh x\obj=mesh End Function |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Fuchsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das ist nicht komisch, dass ist genau das was ich brauche.
Danke euch Allen! MfG Fuchsi |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
dreamoras methode ist dennoch toller, weil 3dbeschleunigt! ![]() Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
SetBuffer BackBuffer() cam=CreateCamera() cube=CreateCube() PositionEntity cube,0,0,10 EntityAlpha cube,.5 While Not KeyDown(1) Cls TurnEntity cube,1,1,0 UpdateWorld RenderWorld CameraClsMode cam,0,1 CameraFogRange cam,.01,.01 CameraFogColor cam,0,0,0 CameraFogMode cam,1 WireFrame 1 RenderWorld WireFrame 0 CameraFogMode cam,0 Flip Wend |
||
MrKeks.net |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab das ganze grad mal in eine Funktion gepackt:
Code: [AUSKLAPPEN] Function RenderWorldWireFrame(camera,switch) If switch = 0 Then RenderWorld Else RenderWorld CameraClsMode camera,False,True WireFrame 1 RenderWorld WireFrame 0 EndIf End Function nur sieht es bei mir relativ merkwürdig aus ![]() ~Edit~ Aha! Ich glaub es sieht so komsich aus, da die Wireframe linien ja eigentlich die Farbe der Textur haben, heißt wo ne Textur drüber ist sieht man die linien nicht / nur halb... ~Edit2~ Und da hab ich den Sinn von Keks Fog verstanden ![]() Code: [AUSKLAPPEN] Function RenderWorldWireFrame(camera,switch) If switch = 0 Then RenderWorld Else RenderWorld CameraClsMode camera,False,True CameraFogRange camera,.01,.01 CameraFogColor camera,0,0,0 CameraFogMode camera,1 WireFrame 1 RenderWorld WireFrame 0 CameraFogMode camera,0 EndIf End Function sorry für die belästigung! |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
5k41 hat Folgendes geschrieben: ~Edit2~
toller trick, was? (= bin ich voll stolz drauf! xD
Und da hab ich den Sinn von Keks Fog verstanden ![]() |
||
MrKeks.net |
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group