Help!!! Need 2 TRON 'BIT' geometric models FAST!

Miscellaneous Forums/Graphics Showcase/Help!!! Need 2 TRON 'BIT' geometric models FAST!

If you saw the original Disney Film: TRON, you know this little guy.



I need two models that represent the YES and NO states of Bit. Any and all help would be extremely appreciated.

But in Tron didnt it morph between the two?

Yes it did, but I think the two states have the same geometry, just the spiky one has the vertices pulled in/out. You could probably do this easily enough in code.

You should be able to knock up the basic model easily in any modeller, too.

aren't those just tetrahedrons?

I seriously need these models and my modeling skills suck. I know these are easy to do for a skilled modeler. In return perhaps I can write a piece of code or something.

here you go.

Click here to download!

PONGO IS AN ART GOD!!!

^^^ yes, this is true.

Or,....

I just created an icosahedron primitive and subdivided the faces, followed by pushing some points.

You decide! :P

I just created an icosahedron primitive and subdivided the faces, followed by pushing some points.
My point exactly!!!

I was right! those were hedras!

To code that with Blitz3D and then animate them would be pretty hard IMHO because you've got to do some tricky culling.

Well, this code is BMax + minib3d but it should be easily to convert it to B3D. It simply morphs between these to meshes.
Maybe its useful ;)

Import sidesign.minib3d

Graphics3D 640,480,0,2


bit0 = LoadMesh ("bit0.3ds")
MoveEntity bit0,10,0,0

bit1 = LoadMesh ("bit1.3ds")
MoveEntity bit1,-10,0,0

Local bitmorph:TMorph = TMorph.Create(bit0,bit1)


cam = CreateCamera()
MoveEntity cam,0,0,-20

light = CreateLight()
MoveEntity light,50,50,0

Print "C1 : " + CountTriangles(GetSurface(bit0,1))
Print "C2 : " + CountTriangles(GetSurface(bit1,1))

Local Frame:Float = 0.0
Local Morph:Byte = False


While Not KeyHit(KEY_ESCAPE)

	TurnEntity bit0,0,1,0
	TurnEntity bit1,0,1,0
	TurnEntity bitmorph.result,0,1,0
	
	If KeyHit(KEY_SPACE) Then 
		Morph = True
		Frame = 0
	EndIf
	
	If Morph = True Then
		Frame:+12.0
		bitmorph.Morph(Sin(Frame)*99,100)
		If Frame > 180 Then Morph = False
	EndIf
	
	UpdateWorld()
	RenderWorld()
	Flip
Wend 


Type TMorph
	Field Source:TMesh
	Field Target:TMesh
	
	Field Result:TMesh
	
	Field frames:Int = 60
	
	Function Create:TMorph(S:TMesh,Target:TMesh)
		Local M:TMorph = New TMorph
		M.Source =S
		M.Target = Target
		M.Result = CopyMesh(S)
		Return M
	End Function
	
	Method Morph(Frame:Int,MaxFrames:Int = 300)
		Local P:Float = Abs((1.0/(MaxFrames-1))*(Frame Mod MaxFrames))
		Local SS:TSurface = GetSurface(Source,1)
		Local ST:TSurface = GetSurface(Target,1)
		Local SR:TSurface = GetSurface(Result,1)
		EntityColor(Result,255.0*P,(1.0-P)*255.0,(1.0-P)*255.0)
		
		For Local V:Int = 0 To CountVertices(SS)-1
			Local XS:Float = VertexX(SS,V)
			Local YS:Float = VertexY(SS,V)
			Local ZS:Float = VertexZ(SS,V)
			
			Local XT:Float = VertexX(ST,V)
			Local YT:Float = VertexY(ST,V)
			Local ZT:Float = VertexZ(ST,V)
			
			Local XR:Float = Interpolate(XS,XT,P)
			Local YR:Float = Interpolate(YS,YT,P)
			Local ZR:Float = Interpolate(ZS,ZT,P)

			VertexCoords(SR,V,XR,YR,ZR)
		Next
		
		UpdateNormals(Result)
	
	End Method 
	
	Method Interpolate:Float(x1:Float , x2:Float , trans:Float)
		Return x1 + ((x2-x1)*trans)
	End Method

	
End Type


To code that with Blitz3D and then animate them would be pretty hard IMHO because you've got to do some tricky culling.
What would need culling?

Here you go

http;//www.lightwave3d.pwp.blueyonder.co.uk/bit.zip

Check the demo source. There's 3 bones in the mesh, each affects a set of points (you'll see which :)

Simply animate the scale of the bones uniformly to create the desired shape or animation.

The second UV map is just for reference in case you want to paint it, otherwise, use a brush to change color.

Tom's solution is really awesome! I just don't have a clue how the B3D model is built!

What would need culling?

If you would build the 3D model from addvertex and addtriangle instructions from math equations to get this sort of shape, you'd need to figure out some tricky culling. what do you think?

If you would build the 3D model from addvertex and addtriangle instructions from math equations to get this sort of shape, you'd need to figure out some tricky culling. what do you think?
Oh, you mean it'd be tricky to workout which vertices need to be moved in/out? I guess it could be - better off just making it in a modeller. :)