I want to make a spikiness effect - when model is transformed so the spikes will poke out of it. Tried to create some with not very good result. Maybe you can help and create better? Here, this can be a template:
Graphics3D 800,600 Const sphere_segments = 8, segments = 48 PositionEntity CreateCamera(), 0, 0, -10 RotateEntity CreateLight(), 45, 45, 0 PositionEntity CreateSphere(sphere_segments), -6, 4, 0 PositionEntity Make_Spiky(CreateSphere(sphere_segments)), -2, 4, 0 PositionEntity CreateCube(), 2, 4, 0 PositionEntity Make_Spiky(CreateCube()), 6, 4, 0 PositionEntity CreateCone(segments), -6, 0, 0 PositionEntity Make_Spiky(CreateCone(segments)), -2, 0, 0 PositionEntity CreateCylinder(segments), 2, 0, 0 PositionEntity Make_Spiky(CreateCylinder(segments)), 6, 0, 0 mesh=LoadMesh("C:\Program Files\Blitz3D\samples\teapot\teapot.x") If mesh Then PositionEntity mesh, -6, -4, 0 PositionEntity Make_Spiky(CopyMesh(mesh)), -2, -4, 0 End If mesh=LoadMesh("C:\Program Files\Blitz3D\samples\anim\makbot\mak_robotic.3DS") If mesh Then ScaleMesh mesh, 0.1, 0.1, 0.1 PositionMesh mesh, 0, -2, 0 PositionEntity mesh, 2, -4, 0 PositionEntity Make_Spiky(CopyMesh(mesh)), 6, -4, 0 End If RenderWorld Flip WaitKey Function make_spiky(mesh) ;======== For n1 = 1 To CountSurfaces(mesh) s = GetSurface(mesh, n1) q = CountTriangles(s) For n2 = 0 To q - 1 v0=TriangleVertex(s,n2,0) v1=TriangleVertex(s,n2,1) v2=TriangleVertex(s,n2,2) d# = 0.5 x# = Rnd(-d#, d#) + (VertexX(s,v0)+VertexX(s,v1)+VertexX(s,v2))/3 y# = Rnd(-d#, d#) + (VertexY(s,v0)+VertexY(s,v1)+VertexY(s,v2))/3 z# = Rnd(-d#, d#) + (VertexZ(s,v0)+VertexZ(s,v1)+VertexZ(s,v2))/3 v=AddVertex(s,x#,y#,z#) AddTriangle s,v0,v1,v AddTriangle s,v1,v2,v AddTriangle s,v2,v0,v Next Next UpdateNormals mesh EntityFX mesh,16 ;======== Return mesh End Function Function vertex_distance#(s, v1, v2) dx# = VertexX(s, v1) - VertexX(s, v2) dy# = VertexY(s, v1) - VertexY(s, v2) dz# = VertexZ(s, v1) - VertexZ(s, v2) Return Sqr(dx# * dx# + dy# * dy# + dz# * dz#) End Function
