Гигант индустрии
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений (для 3,298 пользователей)
|
Ответ: Blitz3D и CellShader
Для примитивов сойдет.

Global tex,cam,planet,glow
Graphics3D 1024,768,32,2
camera=CreateCamera()
CameraZoom camera,1.5
cube = CreateCube ()
Cel_Shade (cube,0.05,255)
sphere = CreateSphere (6)
Cel_Shade (sphere,0.05,255)
PositionEntity sphere,-5,0,0
light=CreateLight(2)
MoveEntity light,1000,1000,-1000
MoveEntity camera,0,0,-10
While Not KeyHit(1)
TurnEntity cube,0.4,0.2,0.2
TurnEntity sphere,0.4,0.3,0.2
RenderWorld ()
Flip
Wend
End
Function Cel_Shade (Shaded_Entity, OutlineScale#=0.025, r#=0, g#=0, b#=0)
Local Outline_Entity = CopyMesh(Shaded_Entity)
UpdateNormals (Outline_Entity)
EntityFX (Outline_Entity, 1+8)
Local i
For i = 1 To CountSurfaces(Outline_Entity)
Local surf = GetSurface(Outline_Entity, i)
Local j
For j = 0 To CountVertices(surf) - 1
Local Vx# = VertexX#(surf, j)
Local Vy# = VertexY#(surf, j)
Local Vz# = VertexZ#(surf, j)
Local VNx# = VertexNX#(surf, j)
Local VNy# = VertexNY#(surf, j)
Local VNz# = VertexNZ#(surf, j)
VertexCoords (surf, j, Vx#+(VNx#*OutlineScale#), Vy#+(VNy#*OutlineScale#), Vz#+(VNz#*OutlineScale#))
Next
Next
FlipMesh Outline_Entity
EntityColor Outline_Entity, r, g, b
RotateEntity Outline_Entity,EntityPitch (Shaded_Entity, True),EntityYaw (Shaded_Entity, True),EntityRoll (Shaded_Entity, True)
PositionEntity Outline_Entity, EntityX#(Shaded_Entity, True), EntityY#(Shaded_Entity, True), EntityZ#(Shaded_Entity, True)
EntityParent Outline_Entity, Shaded_Entity
End Function
|