Mesh Umrandung/Expansion [erledigt]

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Matthias

Betreff: Mesh Umrandung/Expansion [erledigt]

BeitragSa, Apr 14, 2007 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay. Also wie der Titel schon sagt möchte ich gerne eine Transparente Umrandung für Meshes haben. Und bei simplen sachen wie Cylinder oder Würfel geht es ja auch, aber bei komplexeren sachen wie zb. Autos usw. fängt mein Problem schon an. Mir ist schon klar das der weg nur über denn vertex punkten gehen kann, aber ich habe keine Ahnung wo ich da anfangen soll.
Deshab wäre ich echt glücklich wenn mir jemand ein paar Tipps oder Ideen geben kann.

Code: [AUSKLAPPEN]

Graphics3D 800,600,32,2

;------3DKramm----
CamPivY=CreatePivot()
CamPivP=CreatePivot(CamPivY)
Camera=CreateCamera(CamPivP)
TurnEntity CamPivY,0,20,0
TurnEntity CamPivP,20,0,0
PositionEntity Camera,0,0,-10
CameraClsColor Camera,0,0,255

Lischt=CreateLight(1,Camera)
Plane=CreatePlane():EntityColor Plane,0,200,0
MoveEntity Plane,0,-1,0

;----Test-Modell--------"

GrundModel=CreateMesh():UmrissModel=CreateMesh()

;-------Wurfel-----------
Cube=CreateCube():PositionMesh Cube,-3,0,0
ScaleMesh Cube,1,1,2:AddMesh Cube,GrundModel
ScaleMesh Cube,1.1,1.1,1.05:PositionMesh Cube,.3,0,0
AddMesh Cube,UmrissModel:FreeEntity Cube

;-------Cylinder-------------"
Cyl=CreateCylinder(32):RotateMesh Cyl,0,0,90
ScaleMesh Cyl,3,.2,.2:PositionMesh Cyl,0,-.5,.5
AddMesh Cyl,GrundModel:ScaleMesh Cyl,1,1.1,1.1
PositionMesh Cyl,0,.05,-.05:AddMesh Cyl,UmrissModel
FreeEntity Cyl
;------Sphere-----------------"
sph=CreateSphere(32):PositionMesh sph,3,0,0
AddMesh Sph,GrundModel:ScaleMesh Sph,1,1.1,1.1
PositionMesh Sph,0,0,0:AddMesh Sph,UmrissModel
FreeEntity Sph





EntityColor GrundModel,200,0,0
EntityColor UmrissModel,150,150,255

;---Standart-Scalierung------------
;FreeEntity UmrissModel:UmrissModel=CopyEntity(GrundModel)
;ScaleEntity UmrissModel,1.1,1.1,1.1

;HideEntity GrundModel
AppTitle "Space=Umrandung An/Aus"
EntityAlpha UmrissModel,.5
Hide=5

SetBuffer BackBuffer()
Repeat:
Select MouseDown(1):Case 1
TurnEntity CamPivY,0,(MausX-MouseX())*.5,0
TurnEntity CamPivP,(MouseY()-MausY)*.5,0,0
End Select

Select KeyHit(57):Case 1:Hide=5-Hide
EntityAlpha UmrissModel,Hide*.1:End Select


MoveEntity Camera,0,0,MouseZ()-MausZ
MausX=MouseX():MausY=MouseY():MausZ=MouseZ()

RenderWorld
Flip
Until KeyDown(1)=1
End
  • Zuletzt bearbeitet von Matthias am So, Apr 15, 2007 13:20, insgesamt 3-mal bearbeitet
 

Todeskop

BeitragSa, Apr 14, 2007 17:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ist eigentlich recht simple :
schreibe dir einfach ne funktion wo drinne steht das du das objekt copierst und um X.X scalierst und mit dem objekt parentierst.

MFG Todeskop
 

Matthias

BeitragSa, Apr 14, 2007 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
@Todeskop. Ich glaube du hast das Problem nicht verstanden.
Ich will nicht das Mesh vergrößern sondernt eine Umrandung erzeugen.
Aktiviere mal Standart-Scalierung.
 

Todeskop

BeitragSo, Apr 15, 2007 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ja eben du KOPIERST das gewünste mesh, SKALIERST es auf die gewünschte "Leuchtweite" und machst es TRANSTPARENT und zu guter letzt POSITIONIERST du es bei dem "alten"(nicht kopierten) mesh, das geht am besten mit ENTITYPARENT.
MFG Todeskop

FreetimeCoder

BeitragSo, Apr 15, 2007 12:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist es eben NICHT! was er will. Bei vielen Meshes geht das nämlich nicht. Dann sieht es nicht wie eine Umrandung aus.
"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

BeitragSo, Apr 15, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe das Problem gelöst. Mann muß die Normalen benuzen. Allerdings hat nicht jedes Mesh schon automatich seine Normalen. Demzufolge braucht mann eine Function die die Normalen ausrichtet. Den Code dafür habe ich im Blitz.com gefunden. Allerdings functioniert das auch nur dann wenn alle Flächen zusammen hängen. Demzufolge braucht man noch eine Function um die Vertex zu verschweißen. Und fertig. Viel Aufwand für einen kleinen Efeckt.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Apr 15, 2007 13:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst zB nach einer Comicstyle-Funktion suchen und in dieser lediglich das FlipMesh raus nehmen und dem kopierten Mesh eine Transparenz geben.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group