forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Sigel (http://forum.boolean.name/showthread.php?t=4960)

moka 29.04.2009 23:36

Ответ: Sigel
 
Цитата:

Сообщение от HolyDel (Сообщение 104027)
дык в гл вроде по другому и не сделать.

Слушай, а от этого же потери большие! Ведь вот запусти не фулл скрин приложение, и фулл скрин (я про ДХ), разница очень большая, даже при большем разрешении, в фуллскрине будет быстрее чем в окне..

Цитата:

Сообщение от HolyDel (Сообщение 104027)
для 3d сцены aspct ratio настраивается автоматически. А вот в 2d да, придется конечному пользователю думать, как сделать так, чтобы выглядело нормально. сам переход возможен, но тогда картинку или сплющит или растянет.

Тут посмотреть на любую игру с гуи - это нормально и практикуемо. Большое разрешение также любят те, кто умещает на экран много интерфейса, т.к. его больше вмещается (потому что не растягивается), поэтому я думаю фичу растягивания, ни в коем случае не делай по дефолту, т.к. она то будет юзаться Только для 2Д игр, мира. Для гуи, всегда думаю будут оставлять те же размеры, а вот позиция будет привязана к ориентирам, например: низ-центр. (как в RPG панельки, например WoW)

HolyDel 30.04.2009 00:06

Ответ: Sigel
 
Цитата:

Слушай, а от этого же потери большие!
Ну написал на блице простейшее пустое приложение.

в окне 1800 (0.555 мс)
в фуллскрин 2100 (0.476мс)

оверхед окна - 0.079мс. не слишком высокая цена при среднем времени кадра - 10 - 20 мс. зато не имеем геморроя с alt+tab - ом, бонус при смене разрешения и т.д. минус, который я так и не смог побороть - это всякие всплывающие окна (аська например)

да вопрос не в плюсах и минусах, а в том, что честный фулскрин на гл не сделать (насколько мне известно).

Цитата:

поэтому я думаю фичу растягивания, ни в коем случае не делай по дефолту
я и не собирался :)

impersonalis 30.04.2009 01:12

Ответ: Sigel
 
Цитата:

честный фулскрин на гл не сделать (насколько мне известно).
ужос! это реально так?
текущий фулскрин - это окно под размер разрешния декстопа с заданным коэффциентом вывода?

HolyDel 30.04.2009 01:18

Ответ: Sigel
 
ага. теперь объясните, пожалуйста, в чем ужос?

ABTOMAT 30.04.2009 01:47

Ответ: Sigel
 
Цитата:

ужос! это реально так?
текущий фулскрин - это окно под размер разрешния декстопа с заданным коэффциентом вывода?
Цитата:

ага. теперь объясните, пожалуйста, в чем ужос?
Объясняю: при "честном" фуллскрине смена буферов происходит без копирования чего-л куда-л, а просто ссылки на BackBuffer и на FrontBuffer меняются местами. В оконном режиме картинка полностью копируется в буфер окна, что занимает много времения, поэтому-то и юзать оконный режим нежелательно.
Не может быть, чтобы OpenGL не давал делать "честный" фуллскрин, иначе это же изврат полный.

Къ посту 634
Самый лучший вариант 1. У прогера своя голова на плечах.
Ну, 2 тоже покатит.
Но 3 и 4 не рулят, т.к. размер = размер экрана даже в принципе не может быть. Текстура бывает только степени двойки, т.к.ю текстуры 1280*1024 создать нельзя, только 2048*1024, нельзя сделать 1024*768, а только 1024*1024. Какая тут привязка к разрешению, вы что? Глупость нах. 1024*1024 - может оказаться как текстура какого-нибудь ГУЯ, так и текстура стены/металла/монстра и т.д.
Кроме того частенько (у меня) текстура для рендера раза в 2-4-8 меньше разрешения экрана, так что тут тоже никак не привяжешь автоматом.
Короче привязка автоматом - это ересь, либо 2 либо 1
По мне так и 1 неплохо, нечего делать всё за прогера.

HolyDel 30.04.2009 02:09

Ответ: Sigel
 
Цитата:

Объясняю: при "честном" фуллскрине смена буферов происходит без копирования чего-л куда-л, а просто ссылки на BackBuffer и на FrontBuffer меняются местами. В оконном режиме картинка полностью копируется в буфер окна, что занимает много времения, поэтому-то и юзать оконный режим нежелательно.
я уже писал. оверхед меньше 0.1 мс. это практически ничто. ну будет не 100 а 101 фпс, разница не очень велика. возможно это как то оптимизируется драйвером, или системой, но разница в скорости не такая большая как можно подумать.

Цитата:

Не может быть, чтобы OpenGL не давал делать "честный" фуллскрин, иначе это же изврат полный.
ну хз. наверное ето сильно от системы зависит. вобщем хз. я по крайней мере способа не знаю :)

Цитата:

Но 3 и 4 не рулят, т.к. размер = размер экрана даже в принципе не может быть.
начиная с 6xxx может.

Цитата:

По мне так и 1 неплохо, нечего делать всё за прогера.
наверное ты прав. тогда не буду заморачиваться.

Цитата:

Кроме того частенько (у меня) текстура для рендера раза в 2-4-8 меньше разрешения экрана, так что тут тоже никак не привяжешь автоматом.
ну их размер наверное и не должен меняться вместе с разрешением?

ABTOMAT 30.04.2009 12:53

Ответ: Sigel
 
Цитата:

начиная с 6xxx может.
ну у тя же универсальный двиг :) так шо не 6ххх едиными
Цитата:

ну их размер наверное и не должен меняться вместе с разрешением?
нууу, скажем так при разрешении 640*480 текстуры воды хватает и 256*256, но при 1600*1200 уже надо 1024*1024

HolyDel 30.04.2009 20:20

Ответ: Sigel
 
теперь двиг умеет работать с HDR текстурами 16f и 32f.

вот дема:
http://sigelengine.googlecode.com/files/HDRTest4.zip

1 - обычная текстура
2 - тестура float 16
3 - текстура float 32


z/x менять яркость.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 10 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

HolyDel 01.05.2009 20:50

Ответ: Sigel
 
Вложений: 1
добавил константы для режима окна

SWM_FULLSCREEN = 1
SWM_WINDOWED = 2
SWM_SIZEBLE = 3
SWM_SPLASH = 4

первые три соответсвуют блицу, а последний это:
Вложение 5970

+ окно теперь создается по центру екрана, а не в углу.

ABTOMAT 01.05.2009 21:38

Ответ: Sigel
 
Сделай ещё чтоб мона было перемещать окно по десктопу (мона конечно и через винапи но в завраппленно-движковом виде будет удобней)

HolyDel 04.05.2009 22:11

Ответ: Sigel
 
я тут задумал один хитрый алгоритм, который позволит резко увеличить максимальное число ентити в сцене (но за счет ввода ограничения числа ентити в кадре).

как вы думаете, это идиотизм, вводить такое ограничение? пусть даже очень большое - например 256000 объектов.

impersonalis 04.05.2009 22:14

Ответ: Sigel
 
сделай хитрую оптимизацию вклчюаемой\выключаемой.
А вообще - имхо лимит может быть, особенно, если он перекрывает потенциальную производительность движка на сферчиеской видеокарте в вакууме.

HolyDel 04.05.2009 22:30

Ответ: Sigel
 
Цитата:

сделай хитрую оптимизацию вклчюаемой\выключаемой.
если только в compile time.

moka 04.05.2009 22:39

Ответ: Sigel
 
Тоесть даже хотябы при инициализации движка, сделать переключение этой оптимизации нельзя?

HolyDel 04.05.2009 22:55

Ответ: Sigel
 
Цитата:

Тоесть даже хотябы при инициализации движка, сделать переключение этой оптимизации нельзя?
ну.. если двоить код, то скорее всего получится ето опреелять на этапе оптимизации почти без потерь производительности.

а вот если делать как попроще да покрасивее, то я скорее всего нарвусь на 2 * _число_ентити_в_сцене_ if-ов как минимум.

moka 05.05.2009 03:51

Ответ: Sigel
 
Тоесть как понял ты это реализовал дефайном..
Эх..

HolyDel 05.05.2009 04:08

Ответ: Sigel
 
я пока еще никак не реализовал :)

да и вопрос был в ограничении, которое, хотя видюхи и не превзойдут, но оно гнетет.

в принципе, если подумать, то можно и в рантайме сделать, т.е. при инициализации указывать.

moka 05.05.2009 20:36

Ответ: Sigel
 
В рантайме думаю самый подходящий по производительности способ, всёравно в играх, часто делают лаунчер с настройками, или с игры, где указвается: "настройки будут применены при следующем запуске игры", типо того. Поэтому думаю этот варриант наилучший. ;)

HolyDel 05.05.2009 22:15

Ответ: Sigel
 
гы...
так и представил опцию scene graph с вариантами:
* plain data
* octtree
* quadtree
* kd-tree

и пусть геймер выбирает на выбор, что ему больше нравится ))

Genius 05.05.2009 22:21

Ответ: Sigel
 
Цитата:

Сообщение от HolyDel (Сообщение 104438)
гы...
так и представил опцию scene graph с вариантами:
* plain data
* octtree
* quadtree
* kd-tree

и пусть геймер выбирает на выбор, что ему больше нравится ))

quadtree в большенстве случаев будет вообще не в тему,что за kd-tree?


Можно сделать несколько вареаций функций просто при выборе подставляеш поинтер на функции с выбраным типом оптимизации,и не каких тебе лишних проверок.

moka 05.05.2009 22:27

Ответ: Sigel
 
Погоди ты уже имплементируешь разбиение пространства?
По мне так это очень сильно относится к жанру игры..

Насчёт опции, это дело чисто кодера, как он в настройках укажет.
Но где-то привяжет это к типо: ускоренный рендеринг, с пометкой что нагрузка будет немного больше на процессор.

HolyDel 05.05.2009 22:46

Цитата:

quadtree в большенстве случаев будет вообще не в тему
я ее туда просто так, для коллекции написал :)

Цитата:

что за kd-tree?
http://steps3d.narod.ru/tutorials/sp...-tutorial.html

Цитата:

Можно сделать несколько вареаций функций просто при выборе подставляеш поинтер на функции с выбраным типом оптимизации,и не каких тебе лишних проверок.
вот я и говорил о дублировании.


Цитата:

Погоди ты уже имплементируешь разбиение пространства?
По мне так это очень сильно относится к жанру игры..
твоя правда, но есть некоторые базовые методы, котроые можно использовать.

вернемся к вопросу о ограничениях. давайте приведу другой пример, например на трассе будет стоять ограничение скорости в 10000 км\ч. понятно что ни одна машина такую скорость не разовьет, но ограничение то стоит!

ABTOMAT 05.05.2009 23:57

Ответ: Sigel
 
Цитата:

Погоди ты уже имплементируешь разбиение пространства?
По мне так это очень сильно относится к жанру игры..
Имхо прогер игры сам должен делать это
Я вот сам делаю и ничё)
И действительно конкретной игре нужно конкретное разбиение

jimon 06.05.2009 00:10

Ответ: Sigel
 
ABTOMAT
может ты и отсечение по фрустуму будешь сам делать ? :)
все игровые сцены делятся на закрытые и открытые пространства, достаточно просто описать разбиение для двух типов и всё

FDsagizi 06.05.2009 08:54

Ответ: Sigel
 
Цитата:

Сообщение от HolyDel (Сообщение 104438)
гы...
так и представил опцию scene graph с вариантами:
* plain data
* octtree
* quadtree
* kd-tree

и пусть геймер выбирает на выбор, что ему больше нравится ))

Ну уж точно выберать то не геймер должен!:crazy:

HolyDel 21.05.2009 00:02

Ответ: Sigel
 
вот. тест скорости сжатых текстур:
http://sigelengine.googlecode.com/fi...nSpeedTest.zip

1 - обычный режим
2 - сжатые текстуры

понажимайте 1-2 попеременно, как надоест нажмите esc. будет окошко с результатом. меня интересует последняя циферка.

вот мои результаты:

Win Vista
9600M GS
P8400 2x2.26GHz
-сжатые текстуры быстрее на 5%

WinXP
HD2600XT
Celerone 2.66
-сжатые текстуры быстрее на 20%

-=Jack=- 21.05.2009 09:57

Ответ: Sigel
 
WinXP SP3
ATI Radeon HD 2600 Pro
56%

SBJoker 21.05.2009 10:27

Ответ: Sigel
 
35,8 %
WInXP SP2, GF-8800, A-5600 X2

MiXaeL 21.05.2009 11:55

Ответ: Sigel
 
22,4%
AMD X2 2.61Hz
GeForce 8800 GTS Retail 386 Mb
DDR2 766MHz 2 Gb

Mr_F_ 21.05.2009 14:58

Ответ: Sigel
 
Цитата:

может ты и отсечение по фрустуму будешь сам делать ?
у меня в левеле куча порталов и каждый своим фруструмом содержимое секторов отсекает)
хотя конечно было бы радостнее уже на уровне двига такие извраты иметь

Morganolla 15.05.2010 16:20

Ответ: Sigel
 
Жалко движок заглох. А почему ОпенАЛ для звука не понравился?

HolyDel 24.05.2010 14:25

Ответ: Sigel
 
Да. я изменил свой взгляд на движек. теперь все будет подругому. отдельно интерфейс, отдельно реализация, отдельно модули.

опенал слишком низкоуровнево имхо, хотя в новом движке наверное буду использовать его для звука в ядре.

Igor' 31.05.2010 09:01

Ответ: Sigel
 
Цитата:

Сообщение от HolyDel (Сообщение 147777)
Да. я изменил свой взгляд на движек.

Российская армия меняет взгляды на движек:-D.

.Squid 31.05.2010 11:09

Ответ: Sigel
 
Мля, движОк, сцуко, движОк. Глаза уже замазолили.

impersonalis 31.05.2010 21:13

Ответ: Sigel
 
Цитата:

Сообщение от .Squid (Сообщение 148484)
Мля, движОк, сцуко, движОк. Глаза уже замазолили.


писали бы хоть движЁк,а то ещё и движЕк.
рыально - Б.Е.С.И.Т.!

Morganolla 31.05.2010 23:39

Ответ: Sigel
 
Хорошь офтопить. Движок от слова кружок. Круг - кружок, двиг - движок!

ABTOMAT 01.06.2010 01:05

Ответ: Sigel
 
Мы - граммар наци! И имя нам - Легион!

Morganolla 08.06.2010 21:49

Ответ: Sigel
 
Цитата:

Сообщение от HolyDel (Сообщение 147777)
Да. я изменил свой взгляд на движек. теперь все будет подругому. отдельно интерфейс, отдельно реализация, отдельно модули.

опенал слишком низкоуровнево имхо, хотя в новом движке наверное буду использовать его для звука в ядре.

Готов принять участие в меру своих способностей и под чутким руководством.

HolyDel 26.06.2010 09:38

Ответ: Sigel
 
все. проект официально закрыт.
пока пишу новый двиг (все еще большей частью на бумаге).
как сделаю в коде какую-нибудь инициализацию окна - открою тему.


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

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