Заметки от Джимона
Автор: Вадим Игоревич Борейко
Некоторые заметки.
Загрузка текстур
Я заметил глюк в блице: версия 1.87 не хочет грузить текстуры с размером не кратным 2 на видеокартах geforce 6 series В общем, я написал функцию обхода этого:
video_card_type$="Geforce 6 series"
Function load_texture(file$,flags=1,frames=1)
;by jimon
Select video_card_type$
Case "Geforce 6 series"
img=LoadImage(file$)
tex=CreateTexture(ImageWidth(img),ImageHeight(img),flags,frames)
CopyRect 0,0,ImageWidth(img),ImageHeight(img),0,0,ImageBuffer(img),TextureBuffer(tex)
FreeImage img
Return tex
Default
Return LoadTexture(file$,flags)
End Select
End Function
Потом установил 1.90 но там уже текстуры блиц грузит!!! Решил протестировать на скорость. 1.87 моя функция загрузила текстуру 873*519 за 55 мс , блиц не загрузил но что-то думал 33 мс. 1.90 моя функция также загрузила за 55 мс , а блиц думал целых 907 мс (!!!), но что-то загрузил.
В общем, желательно во всех програмах использовать ету функцию :), чтобы ваши игры нормально шли на новых видеокартах.
ps. у меня XFX 6600 GT и все идет с этим кодом
Как обойти ошибку деления на ноль ?
a=b/c#
Обязательно задать c тип float и ошибки не будет. Это происходит из-за неточностей в обработке сверхмалых чисел то, есть когда c#=0, то получается примерно так a=b/0.00000001
Вот так вот.
Ошибка в библиотеке ODE
Найдена критическая ошибка в функции преобразовании углов поворота в матрицу поворота в arkon ode 0.5 wrapper. Пример ошибки :
space = ODE_dWorldCreate(1)
body = ODE_dBodyCreate()
geom = ODE_dCreateBox(space, 1, 1, 1, 1)
ODE_dGeomSetBody geom, body
ODE_dBodySetRotation(body, 45,155,0)
x#=ODE_dBodyGetPitch#(body)
y#=ODE_dBodyGetYaw#(body)
z#=ODE_dBodyGetRoll#(body)
Print "Start angles : 45 , 155 , 0"
Print "Ode angles : "+x+" , "+y+" , "+z
Print "Maybe ode_pitch=cos(start_yaw)*start_pitch"
Автор: Jimon ()
7 октября 2006