Тема: Тени в Xors3d
Показать сообщение отдельно
Старый 11.02.2011, 11:47   #13
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Тени в Xors3d

Чтобы не плодить лишних тем.
В Xors3d я пока еще нуб, создал сцену потестить тени, загрузил модельку своего персонажа, она отображается так (см. плечи и кисти) http://images.tvlg.ru/images/00795996303772293776.jpg
Хотя в оригинальном блице таких проблем не наблюдалось.
И еще один вопрос, но уже по анимации - запускаю анимацию этого персонажа - движения не плавные а рваные, дерганные. Вот код:
;===   Подключаемые библиотеки
Include "xors3d.bb"



;===   Настройки графического режима
Global GWidth%=640
Global GHeight%=480
Global GDepth%=32
Global GMode%=1
;Global ShadowMode%=0
;Global EffectMode%=0
;Global GlowMode%=0
;Global ContrastMode%=0
Global VSyncMode%=0

fileout=ReadFile("game.cfg")
If fileout Then
  GWidth=ReadInt(fileout)
  GHeight=ReadInt(fileout)
  GDepth=ReadInt(fileout)
  ShadowMode=ReadInt(fileout)
  EffectMode=ReadInt(fileout)
  GlowMode=ReadInt(fileout)
  ContrastMode=ReadInt(fileout)
  VSyncMode=ReadInt(fileout)
EndIf

xGraphics3D GWidth,GHeight,GDepth,1,VSyncMode
xHidePointer()



;===   Создание камеры
camera%=xCreateCamera()
xCameraRange camera,0.1,3000
xCameraEnableShadows camera



;===    Переменные mouse look
xMoveMouse xGraphicsWidth()/2,xGraphicsHeight()/2
mousespeed#=0.5 
camerasmoothness#=4.5



;===   Загрузка уровня
level%=xCreateCube()
xScaleEntity level,100,1,100
xPositionEntity level,0,-20,0
level1%=xCreateSphere()
xEntityColor level1,255,150,100
xScaleEntity level1,10,10,10
xPositionEntity level1,-10,-10,-10

testtt=xLoadAnimMesh("D:\Developing\realise_models2\HERO1\test4.b3d")
xAnimate(testtt,ANIMATION_LOOP,1)
xScaleEntity testtt,30,30,30



;===   Создание освещения
light_up%=xCreateLight()
xRotateEntity light_up%,70,0,0
light_down%=xCreateLight()
xRotateEntity light_down,-110,0,0



;===   Инициация системы теней
xInitShadows(1024,0,512)
xLightEnableShadows light_up,1
xSetShadowParams 4,0.85,True,300
xLightShadowEpsilons light_up,0.0001,0.5



;===   Главный цикл
While Not xKeyHit(1) Or xWinMessage("WM_CLOSE")

;===   Тело главного цикла

  If xKeyDown(KEY_W) Then xMoveEntity camera,0,0,5
  If xKeyDown(KEY_S) Then xMoveEntity camera,0,0,-5
  If xKeyDown(KEY_A) Then xMoveEntity camera,-5,0,0
  If xKeyDown(KEY_D) Then xMoveEntity camera,5,0,0
  mxs#=CurveValue(xMouseXSpeed()*mousespeed,mxs,camerasmoothness)
  mys#=CurveValue(xMouseYSpeed()*mousespeed,mys,camerasmoothness)
  camxa#=camxa-mxs Mod 360
  camya#=camya+mys
  If camya<-89 Then camya=-89
  If camya>89 Then camya=89
  xMoveMouse xGraphicsWidth()/2,xGraphicsHeight()/2
  xRotateEntity camera,camya,camxa,0.0

  xUpdateWorld()

;===   Рендер изображения
  xRenderWorld(1.0,1)
  xFlip()

Wend



;===   Функция сглаживания поворота мыши
Function CurveValue#(newvalue#,oldvalue#,increments)
	If increments>1 Then oldvalue#=oldvalue#-(oldvalue#-newvalue#)/increments 
	If increments<=1 Then oldvalue#=newvalue# 
	Return oldvalue# 
End Function
Да, и последний вопрос - есть ли в ксорсе встроенная система фиксации количества фпс, или надо как-то вручную ее прописывать, как в блитце?
(Offline)
 
Ответить с цитированием