forum.boolean.name

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

HolyDel 16.03.2009 20:54

fullscreen квад
 
подскажите пожалуйста, как в стандартном блице (без внешних либ) отрисовать fullscreen квад самым простым способом? Ну и с приемлемой производительностью.

ABTOMAT 16.03.2009 20:59

Ответ: fullscreen квад
 
Вложений: 1
Спрайт перед камерой и масштабировать. Точных коэффициентов не помню.
З.Ы. Нашёл для 640*480
Принцип думаю ясен

Randomize 16.03.2009 21:15

Ответ: fullscreen квад
 
PHP код:

Local width_ratio#=Float(GraphicsWidth())
Local height_ratio#=Float(GraphicsHeight())
Local sprite=CreateMesh(par)
Local s=CreateSurface(sprite)
    
AddVertex s,0,0,,0,AddVertex s,2,0,1,0
    AddVertex s
,0,-2,,0,AddVertex s,2,-2,1,1
    AddTriangle s
,0,1,AddTriangle s,3,2,1
    ScaleEntity sprite
,Float(width_ratio#)/2,Float(height_ratio#)/2,1
           
EntityParent(spriteCamera)
Return 
sprite 

Помоему както так...
Давно с B3D не работал

H@NON 16.03.2009 22:08

Ответ: 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

у меня эта функция уже давно в снипперах ИДЕ записана :)))

Randomize 16.03.2009 23:41

Ответ: fullscreen квад
 
Квад или Спрайт.
Что выдаёт большие результаты?
Кто больше жрёт систему?

ABTOMAT 16.03.2009 23:48

Ответ: fullscreen квад
 
Видимо больше жрёт спрайт, т.к. он ещё должен обрабатываться - поворачиваться к камере

HolyDel 16.03.2009 23:53

Ответ: fullscreen квад
 
все сожрет филлрейт. на необходимость поворота, вытаскивание из системнойпамяти и прочее будет тратиться во много раз меньше времени, чем на собственно растеризацию квада (будь он спрайтом, мешем или Девой Марией)

ABTOMAT 17.03.2009 00:03

Ответ: fullscreen квад
 
Вопрос стоял что больше, а не насколько


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

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