Показать сообщение отдельно
Старый 16.03.2009, 22:08   #4
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Ответ: fullscreen квад

автор - Platon
;Функция создает квад под размер экрана
;параметры: сурфейс, зум камеры, фокусное расстояние до квада
Function CreateCamQuad(surf%, zoom# = 1.0, near# = 1.0)
    Local xscr%, yscr%, xcnt%, ycnt%, xpos#, ypos#, i%[4]
    ;размеры экрана
    xscr = GraphicsWidth()
    yscr = GraphicsHeight()
    ;координаты центра экрана
    xcnt = xscr Shr 1
    ycnt = yscr Shr 1
    ;проекция левого верхнего угла
    xpos = (   0 - xcnt) * near / +zoom / xcnt
    ypos = (   0 - ycnt) * near / -zoom / xcnt
    i[0] = AddVertex(surf, xpos, ypos, 0.0, 0.0, 0.0)
    ;проекция правого верхнего угла
    xpos = (xscr - xcnt) * near / +zoom / xcnt
    ypos = (   0 - ycnt) * near / -zoom / xcnt
    i[1] = AddVertex(surf, xpos, ypos, 0.0, 0.0, 0.0)
    ;проекция правого нижнего угла
    xpos = (xscr - xcnt) * near / +zoom / xcnt
    ypos = (yscr - ycnt) * near / -zoom / xcnt
    i[2] = AddVertex(surf, xpos, ypos, 0.0, 0.0, 0.0)
    ;проекция левого нижнего угла
    xpos = (   0 - xcnt) * near / +zoom / xcnt
    ypos = (yscr - ycnt) * near / -zoom / xcnt
    i[3] = AddVertex(surf, xpos, ypos, 0.0, 0.0, 0.0)
    AddTriangle(surf, i[0], i[1], i[2])
    AddTriangle(surf, i[2], i[3], i[0])
    Return i[0]
End Function
у меня эта функция уже давно в снипперах ИДЕ записана ))
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
3dr1aN (17.03.2009), ABTOMAT (16.03.2009), HolyDel (16.03.2009), impersonalis (16.03.2009), Nex (30.04.2009), Randomize (16.03.2009), Tadeus (17.03.2009)