|
3D-программирование Вопросы, касающиеся программирования 3D мира |
01.12.2011, 23:53
|
#1
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Стандартное блицевское освещение
Собственно вопрос такой. Посмотрите на рисунок.
Как сделать такой свет чтобы полигоны расположенные в разных плоскостях освещались по разному, а не сливались в 1-ну плоскую двумерную фигуру.
Кому не понятно вот можете запустить этот код.
Двигать камеру на WASD. Крутить камеру можно зажав Правую клавишу мыши и двигая мышью.
Type Wall
Field doors[100]
Field x,y,z,xd,yd,zd
Field mesh
End Type
Global MainCamera
Graphics3D 640,480
SetBuffer BackBuffer()
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
TestData()
light=CreateLight(1)
RotateEntity light,45,0,0
AmbientLight 127,127,127
;a=CreateCube()
;PositionEntity a, 0,3,0
;b=CreatePlane()
;EntityColor b,150,200,150
MainCamera = CreateCamera()
MoveEntity MainCamera, 0,1,-10
TurnEntity MainCamera,0,0,0
Repeat
b.wall = First wall
;TurnEntity b\mesh,0,0.3,0
UpdateCamera(MainCamera)
TurnEntity light,0,3,0
RenderWorld
Text 10,10,EntityRoll#(MainCamera)+" "+EntityYaw#(MainCamera)+" "+EntityPitch#(MainCamera)
Flip
Until KeyHit(1)
End
Function UpdateCamera(cam)
x#=MouseXSpeed()
y#=MouseYSpeed()
If MouseHit(2)
x#=0
y#=0
End If
If MouseDown(2)
RotateEntity cam,y/5.+EntityPitch#(cam),-x/5.+EntityYaw#(cam),0
If EntityPitch#(cam)>70
RotateEntity cam,70,EntityYaw#(cam),0
End If
If EntityPitch#(cam)<-70
RotateEntity cam,-70,EntityYaw#(cam),0
End If
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
End If
If KeyDown(17)
MoveEntity cam, 0,0,0.2
End If
If KeyDown(31)
MoveEntity cam, 0,0,-0.2
End If
If KeyDown(30)
MoveEntity cam, -0.2,0,0
End If
If KeyDown(32)
MoveEntity cam, 0.2,0,0
End If
End Function
Function AddPolyToSurf(x1#,x2#,x3#,y1#,y2#,y3#,z1#,z2#,z3#,d1#,d2#,d3#,surf)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf,y1,y2,y3, 0.5,1)
v2 = AddVertex (surf, z1,z2,z3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf, z1,z2,z3, 0.5,1)
v2 = AddVertex (surf, d1,d2,d3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
End Function
Function AddCubeToSurf(x#,y#,z#,x1#,y1#,z1#,surf)
AddPolyToSurf(x,y,z,x,y+y1,z,x+x1,y+y1,z,x+x1,y,z,surf)
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z,surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1,surf)
AddPolyToSurf(x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+z1,x,y+y1,z+z1,surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1,x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1,x+x1,y+y1,z,surf)
End Function
Function TestData()
a.wall = New wall
a\x=-7:a\y=-3:a\z=3
a\xd=15:a\yd=7:a\zd=1
a\doors[0]=3
a\doors[1]=1
a\doors[2]=1
a\doors[3]=2
a\doors[4]=3
a\doors[11]=5
a\doors[12]=2
a\doors[13]=3
a\doors[14]=4
a\doors[21]=10
a\doors[22]=1
a\doors[23]=2
a\doors[24]=5
CreateWall(a)
End Function
Function CreateWall(a.wall)
a\mesh = CreateMesh()
surf = CreateSurface(a\mesh)
x=a\x:y=a\y:z=a\z:x1=a\xd:y1=a\yd:z1=a\zd
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z,surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1,surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1,x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1,x+x1,y+y1,z,surf)
xt=0
For i=1 To a\doors[0]
x2=a\doors[10*(i-1)+1]
y2=a\doors[10*(i-1)+2]
xd2=a\doors[10*(i-1)+3]
yd2=a\doors[10*(i-1)+4]
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x2,y+y1,z,x+x2,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x2,y,z+z1,x+x2,y+y1,z+z1,xt+x,y+y1,z+z1,surf)
If y2+yd2<y1
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2,y+y1,z,x+x2+xd2,y+y1,z,x+x2+xd2,y+y2+yd2,z,surf)
AddPolyToSurf(x+x2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2,z+z1,x+x2+xd2,y+y1,z+z1,x+x2,y+y1,z+z1,surf)
End If
If y2>0
AddPolyToSurf(x+x2,y,z,x+x2,y+y2,z,x+x2+xd2,y+y2,z,x+x2+xd2,y,z,surf)
AddPolyToSurf(x+x2,y,z+z1,x+x2+xd2,y,z+z1,x+x2+xd2,y+y2,z+z1,x+x2,y+y2,z+z1,surf)
End If
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2+xd2,y+y2+yd2,z,x+x2+xd2,y+y2+yd2,z+z1,x+x2,y+y2+yd2,z+z1,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2,z+z1,x+x2+xd2,y+y2,z+z1,x+x2+xd2,y+y2,z,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2+yd2,z,x+x2,y+y2+yd2,z+z1,x+x2,y+y2,z+z1,surf)
AddPolyToSurf(x+x2+xd2,y+y2,z,x+x2+xd2,y+y2,z+z1,x+x2+xd2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2,z,surf)
xt=x2+xd2
Next
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x1,y+y1,z,x+x1,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+z1,xt+x,y+y1,z+z1,surf)
End Function
|
(Offline)
|
|
01.12.2011, 23:59
|
#2
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Стандартное блицевское освещение
Сделать источник света не дирекшионал, а спот? Не?
Ха-ха. UpdateNormals() не хочешь попробовать?
Добавь его перед главным циклом. Обновлять нормали для этого a\mesh. Зачем это нужно? Потому что у твоей новой геометрии нормали 0,0,0. А затенение рассчитывается углом между светом и нормалью, но результат от такой нормали оставит только амбиент свет, и все твоя новыя геометрия будет рисоваться плоско.
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо dsd за это полезное сообщение:
|
|
02.12.2011, 00:12
|
#3
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Стандартное блицевское освещение
Настроить группы сглаживания на модели и помнить, что освещение повертексное
|
(Offline)
|
|
02.12.2011, 00:20
|
#4
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Стандартное блицевское освещение
Type Wall
Field doors[100]
Field x,y,z,xd,yd,zd
Field mesh
End Type
Global MainCamera
Graphics3D 640,480
SetBuffer BackBuffer()
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
TestData()
light=CreateLight(1)
RotateEntity light,45,0,0
AmbientLight 127,127,127
;a=CreateCube()
;PositionEntity a, 0,3,0
;b=CreatePlane()
;EntityColor b,150,200,150
MainCamera = CreateCamera()
MoveEntity MainCamera, 0,1,-10
TurnEntity MainCamera,0,0,0
Repeat
b.wall = First wall
;TurnEntity b\mesh,0,0.3,0
UpdateCamera(MainCamera)
TurnEntity light,0,3,0
RenderWorld
Text 10,10,EntityRoll#(MainCamera)+" "+EntityYaw#(MainCamera)+" "+EntityPitch#(MainCamera)
Flip
Until KeyHit(1)
End
Function UpdateCamera(cam)
x#=MouseXSpeed()
y#=MouseYSpeed()
If MouseHit(2)
x#=0
y#=0
End If
If MouseDown(2)
RotateEntity cam,y/5.+EntityPitch#(cam),-x/5.+EntityYaw#(cam),0
If EntityPitch#(cam)>70
RotateEntity cam,70,EntityYaw#(cam),0
End If
If EntityPitch#(cam)<-70
RotateEntity cam,-70,EntityYaw#(cam),0
End If
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
End If
If KeyDown(17)
MoveEntity cam, 0,0,0.2
End If
If KeyDown(31)
MoveEntity cam, 0,0,-0.2
End If
If KeyDown(30)
MoveEntity cam, -0.2,0,0
End If
If KeyDown(32)
MoveEntity cam, 0.2,0,0
End If
End Function
Function AddPolyToSurf(x1#,x2#,x3#,y1#,y2#,y3#,z1#,z2#,z3#, d1#,d2#,d3#,surf)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf,y1,y2,y3, 0.5,1)
v2 = AddVertex (surf, z1,z2,z3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf, z1,z2,z3, 0.5,1)
v2 = AddVertex (surf, d1,d2,d3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
End Function
Function AddCubeToSurf(x#,y#,z#,x1#,y1#,z1#,surf)
AddPolyToSurf(x,y,z,x,y+y1,z,x+x1,y+y1,z,x+x1,y,z, surf)
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z, surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1, surf)
AddPolyToSurf(x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+z1, x,y+y1,z+z1,surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1, x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1, x+x1,y+y1,z,surf)
End Function
Function TestData()
a.wall = New wall
a\x=-7:a\y=-3:a\z=3
a\xd=15:a\yd=7:a\zd=1
a\doors[0]=3
a\doors[1]=1
a\doors[2]=1
a\doors[3]=2
a\doors[4]=3
a\doors[11]=5
a\doors[12]=2
a\doors[13]=3
a\doors[14]=4
a\doors[21]=10
a\doors[22]=1
a\doors[23]=2
a\doors[24]=5
CreateWall(a)
End Function
Function CreateWall(a.wall)
a\mesh = CreateMesh()
surf = CreateSurface(a\mesh)
x=a\x:y=a\y =a\z:x1=a\xd:y1=a\yd 1=a\zd
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z, surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1, surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1, x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1, x+x1,y+y1,z,surf)
xt=0
For i=1 To a\doors[0]
x2=a\doors[10*(i-1)+1]
y2=a\doors[10*(i-1)+2]
xd2=a\doors[10*(i-1)+3]
yd2=a\doors[10*(i-1)+4]
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x2,y+y1,z,x+x 2,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x2,y,z+z1,x+x2,y+y1,z+ z1,xt+x,y+y1,z+z1,surf)
If y2+yd2<y1
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2,y+y1,z,x+x2+xd2 ,y+y1,z,x+x2+xd2,y+y2+yd2,z,surf)
AddPolyToSurf(x+x2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2 ,z+z1,x+x2+xd2,y+y1,z+z1,x+x2,y+y1,z+z1,surf)
End If
If y2>0
AddPolyToSurf(x+x2,y,z,x+x2,y+y2,z,x+x2+xd2,y+y2,z ,x+x2+xd2,y,z,surf)
AddPolyToSurf(x+x2,y,z+z1,x+x2+xd2,y,z+z1,x+x2+xd2 ,y+y2,z+z1,x+x2,y+y2,z+z1,surf)
End If
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2+xd2,y+y2+yd2,z, x+x2+xd2,y+y2+yd2,z+z1,x+x2,y+y2+yd2,z+z1,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2,z+z1,x+x2+xd2, y+y2,z+z1,x+x2+xd2,y+y2,z,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2+yd2,z,x+x2,y+y 2+yd2,z+z1,x+x2,y+y2,z+z1,surf)
AddPolyToSurf(x+x2+xd2,y+y2,z,x+x2+xd2,y+y2,z+z1,x +x2+xd2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2,z,surf)
xt=x2+xd2
Next
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x1,y+y1,z,x+x 1,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+ z1,xt+x,y+y1,z+z1,surf)
UpdateNormals a\mesh
End Function
Но вообще лучше нормали ручками ставить командой VertexNormal. Ибо автоматом оно для такой угловатой модели не то считает
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.12.2011, 00:33
|
#5
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Стандартное блицевское освещение
Сообщение от dsd
Type Wall
Field doors[100]
Field x,y,z,xd,yd,zd
Field mesh
End Type
Global MainCamera
Graphics3D 640,480
SetBuffer BackBuffer()
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
TestData()
light=CreateLight(1)
RotateEntity light,45,0,0
AmbientLight 127,127,127
;a=CreateCube()
;PositionEntity a, 0,3,0
;b=CreatePlane()
;EntityColor b,150,200,150
MainCamera = CreateCamera()
MoveEntity MainCamera, 0,1,-10
TurnEntity MainCamera,0,0,0
Repeat
b.wall = First wall
;TurnEntity b\mesh,0,0.3,0
UpdateCamera(MainCamera)
TurnEntity light,0,3,0
RenderWorld
Text 10,10,EntityRoll#(MainCamera)+" "+EntityYaw#(MainCamera)+" "+EntityPitch#(MainCamera)
Flip
Until KeyHit(1)
End
Function UpdateCamera(cam)
x#=MouseXSpeed()
y#=MouseYSpeed()
If MouseHit(2)
x#=0
y#=0
End If
If MouseDown(2)
RotateEntity cam,y/5.+EntityPitch#(cam),-x/5.+EntityYaw#(cam),0
If EntityPitch#(cam)>70
RotateEntity cam,70,EntityYaw#(cam),0
End If
If EntityPitch#(cam)<-70
RotateEntity cam,-70,EntityYaw#(cam),0
End If
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
End If
If KeyDown(17)
MoveEntity cam, 0,0,0.2
End If
If KeyDown(31)
MoveEntity cam, 0,0,-0.2
End If
If KeyDown(30)
MoveEntity cam, -0.2,0,0
End If
If KeyDown(32)
MoveEntity cam, 0.2,0,0
End If
End Function
Function AddPolyToSurf(x1#,x2#,x3#,y1#,y2#,y3#,z1#,z2#,z3#, d1#,d2#,d3#,surf)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf,y1,y2,y3, 0.5,1)
v2 = AddVertex (surf, z1,z2,z3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
v0 = AddVertex (surf,x1,x2,x3, 0 ,0)
v1 = AddVertex (surf, z1,z2,z3, 0.5,1)
v2 = AddVertex (surf, d1,d2,d3, 1 ,0)
tri = AddTriangle (surf,v0,v1,v2)
End Function
Function AddCubeToSurf(x#,y#,z#,x1#,y1#,z1#,surf)
AddPolyToSurf(x,y,z,x,y+y1,z,x+x1,y+y1,z,x+x1,y,z, surf)
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z, surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1, surf)
AddPolyToSurf(x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+z1, x,y+y1,z+z1,surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1, x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1, x+x1,y+y1,z,surf)
End Function
Function TestData()
a.wall = New wall
a\x=-7:a\y=-3:a\z=3
a\xd=15:a\yd=7:a\zd=1
a\doors[0]=3
a\doors[1]=1
a\doors[2]=1
a\doors[3]=2
a\doors[4]=3
a\doors[11]=5
a\doors[12]=2
a\doors[13]=3
a\doors[14]=4
a\doors[21]=10
a\doors[22]=1
a\doors[23]=2
a\doors[24]=5
CreateWall(a)
End Function
Function CreateWall(a.wall)
a\mesh = CreateMesh()
surf = CreateSurface(a\mesh)
x=a\x:y=a\y =a\z:x1=a\xd:y1=a\yd 1=a\zd
AddPolyToSurf(x,y,z,x,y,z+z1,x,y+y1,z+z1,x,y+y1,z, surf)
AddPolyToSurf(x,y,z,x+x1,y,z,x+x1,y,z+z1,x,y,z+z1, surf)
AddPolyToSurf(x+x1,y,z,x+x1,y+y1,z,x+x1,y+y1,z+z1, x+x1,y,z+z1,surf)
AddPolyToSurf(x,y+y1,z,x,y+y1,z+z1,x+x1,y+y1,z+z1, x+x1,y+y1,z,surf)
xt=0
For i=1 To a\doors[0]
x2=a\doors[10*(i-1)+1]
y2=a\doors[10*(i-1)+2]
xd2=a\doors[10*(i-1)+3]
yd2=a\doors[10*(i-1)+4]
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x2,y+y1,z,x+x 2,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x2,y,z+z1,x+x2,y+y1,z+ z1,xt+x,y+y1,z+z1,surf)
If y2+yd2<y1
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2,y+y1,z,x+x2+xd2 ,y+y1,z,x+x2+xd2,y+y2+yd2,z,surf)
AddPolyToSurf(x+x2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2 ,z+z1,x+x2+xd2,y+y1,z+z1,x+x2,y+y1,z+z1,surf)
End If
If y2>0
AddPolyToSurf(x+x2,y,z,x+x2,y+y2,z,x+x2+xd2,y+y2,z ,x+x2+xd2,y,z,surf)
AddPolyToSurf(x+x2,y,z+z1,x+x2+xd2,y,z+z1,x+x2+xd2 ,y+y2,z+z1,x+x2,y+y2,z+z1,surf)
End If
AddPolyToSurf(x+x2,y+y2+yd2,z,x+x2+xd2,y+y2+yd2,z, x+x2+xd2,y+y2+yd2,z+z1,x+x2,y+y2+yd2,z+z1,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2,z+z1,x+x2+xd2, y+y2,z+z1,x+x2+xd2,y+y2,z,surf)
AddPolyToSurf(x+x2,y+y2,z,x+x2,y+y2+yd2,z,x+x2,y+y 2+yd2,z+z1,x+x2,y+y2,z+z1,surf)
AddPolyToSurf(x+x2+xd2,y+y2,z,x+x2+xd2,y+y2,z+z1,x +x2+xd2,y+y2+yd2,z+z1,x+x2+xd2,y+y2+yd2,z,surf)
xt=x2+xd2
Next
AddPolyToSurf(xt+x,y,z,xt+x,y+y1,z,x+x1,y+y1,z,x+x 1,y,z,surf)
AddPolyToSurf(xt+x,y,z+z1,x+x1,y,z+z1,x+x1,y+y1,z+ z1,xt+x,y+y1,z+z1,surf)
UpdateNormals a\mesh
End Function
Но вообще лучше нормали ручками ставить командой VertexNormal. Ибо автоматом оно для такой угловатой модели не то считает
|
Нормаль нада ставить так, чтобы она была перпендикулярна полигону в котором эта вершина?
|
(Offline)
|
|
02.12.2011, 00:41
|
#6
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Стандартное блицевское освещение
В общем да. И длину ей 1 ставь.
Кстати с твоим стилем писания кода лучше бросить блиц и взять хотя бы блицмакс.
|
(Offline)
|
|
02.12.2011, 00:57
|
#7
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Стандартное блицевское освещение
Сообщение от dsd
В общем да. И длину ей 1 ставь.
Кстати с твоим стилем писания кода лучше бросить блиц и взять хотя бы блицмакс.
|
почему?)
я к блицу привык. Мне не нужны продвинутые возможности для того, что я щас задумал написать.
|
(Offline)
|
|
02.12.2011, 01:10
|
#8
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Стандартное блицевское освещение
Это аргумент из серии: я как бобер бревно перегрызу нахрена мне эта мистическая бензопила и так няшно.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.12.2011, 01:46
|
#9
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Стандартное блицевское освещение
Сообщение от dsd
Это аргумент из серии: я как бобер бревно перегрызу нахрена мне эта мистическая бензопила и так няшно.
|
Ну это уже мои проблемы
Вроде работает +)
Спасибо за помощь.
|
(Offline)
|
|
02.12.2011, 02:14
|
#10
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Стандартное блицевское освещение
А теперь текстурные координаты добавь
VertexTexCoords(). Ты же собираешься потом текстуру наложить
Что бы без особых заморочек было. если нормаль +/-1,0,0 Или русским языком смотрит по оси икс, то текстурные координаты y & z;
0,+/-1,0 x & z; 0,0,+/-1 x & y. А если у тебя нормали не по осям то проще будет модель в нормальном редакторе сделать и не заниматься херомантией.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
02.12.2011, 04:29
|
#11
|
Бывалый
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений (для 546 пользователей)
|
Ответ: Стандартное блицевское освещение
как вам такой набор параметров для света?
light=CreateLight(1)
RotateEntity Light,45,50,0
AmbientLight 107,107,107
LightColor light,140,100,70
Последний раз редактировалось radiobutton, 02.12.2011 в 05:54.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:42.
|