How to paint a portion of a mesh with a brush?
Blitz3D Forums/Blitz3D Programming/How to paint a portion of a mesh with a brush?
| ||
Hi! The code below is bullocks, but I wanted to show it anyway. What I am trying is this: When a player digs a hole in the ground (mesh) I'd like to paint that part of the mesh with a ground texture. Now I am adding vertices, but I'd like to paint a part of the mesh. How can I accomplish this? Thanks! Jeroen Graphics3D 800,600,32,2 SetBuffer BackBuffer() mesh = LoadMesh ("meshes/statue.x") paintTexture = LoadTexture("images/interface/inventory/playerLocation.png",2) PositionEntity mesh,0,3,0 camera= CreateCamera() PositionEntity camera,0,5,-7 RotateEntity camera,0,10,0 plane=CreatePlane() brush = CreateBrush() BrushTexture brush,paintTexture BrushShininess brush,1 surface = CreateSurface(mesh) v0 = AddVertex (surface , -5,-5,0, 0 ,0) v1 = AddVertex (surface , 5,-5,0, 1 ,0) v2 = AddVertex (surface , 0, 5,0, 0.5,1) tri = AddTriangle (surface,v0,v2,v1) PaintSurface surface,brush PaintMesh While Not KeyHit(1) TurnEntity mesh, 0.5, 0.5, 0.5 RenderWorld Flip Wend End |
| ||
if it's a repetively tiled texture then it isn't possible. In the examples folder of blitz is a mesh painting source, paintmesh, drawmesh or something like that (who knows the exact name?). |
| ||
Ah I found it! Never seen the demo.. But meanwhile I realised I'm aiming for a wrong course. It's better to add a sprite beneath the players feet. But...the mesh ain't flat. Basicly I need to know the steepness of a certain section. I can Linepick for the Y coordinate: left top, left right, bottom left, bottom right. But then I need to use the four coordinates to calculate the rotation of the sprite. Eg: I am standing on a hill, and I want to place a sprite aligned to the steepness of the hill. |
| ||
use aligntovector. check the gun-fire code of the castle demo. Also, after a linepick you can get the surface angle aka the "normals" with PickedNX(), pickedny() and pickednz() after positioning the sprite at the picked position you need to move it a tiny bit away from the mesh to prevent it flickering. |