forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   camera fill (http://forum.boolean.name/showthread.php?t=12561)

DeeJex 26.05.2010 10:40

camera fill
 
как расчитать координаты квада-оверлэя?

Randomize 26.05.2010 10:43

Ответ: camera fill
 
Не совсем понял вопрос.
Может это поможет?
Код:

;Функция создает квад под размер экрана
;параметры: сурфейс, зум камеры, фокусное расстояние до квада
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

Собсно потом парентим его к камере.

SBJoker 26.05.2010 10:52

Ответ: camera fill
 
Тригонометрия. Есть все данные, FOV камеры, размер экрана.


Часовой пояс GMT +4, время: 00:36.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot