forum.boolean.name

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

pozitiffcat 15.06.2012 12:09

Ответ: axelynx
 
Ты хранишь морфную анимацию в буфере и просто смещаешься каждый раз на соотв. кадр? Я каждый кадр делаю glBufferSubDataARB O_o, хотя этот метод актуален только для анимации на гпу..
Переделал, да так удобней и быстрей, чем каждый раз обновлять буферы, чёта я тупанул не подумав об этом

HolyDel 15.06.2012 15:15

Ответ: axelynx
 
просто это далеко не единственный технический трюк.
есть еще оптимизация индексов под post TnL кэш, вычисление оптимального размера индекса и т.д.

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

pozitiffcat 15.06.2012 16:23

Ответ: axelynx
 
У тебя совершенно иной стиль написания программы, я только все испорчу. У тебя преобладает педантичность, а у меня код грязный, какие то вещи могу объяснить только я - кто то другой код не поймет, ну и так далее.. хоть на работе я и работаю в команде, но в душе я одиночка =)


А ты откуда?
Я из - Самарская обл. г. Тольятти

HolyDel 15.06.2012 18:50

Ответ: axelynx
 
просто есть идея - которую трудно реализовать в одиночку и есть опыт двигописательства (я двигописательством себе на хлеб с икрой зарабатываю)

это сделать не тупо библиотеку, а пакет инструментов.
чтобы инсталился одним кликом и можно было сразу приступать к разработке.
чтобы работало на мобильных платформах.
чтобы было адекватное поведение и минимум оверхеда
чтобы были скрипты/плагины для экспорта с макса
чтобы можно было делать графические демки, технологичные мини-игры.
нет смысла бороться с unity, край-энджином или UDK, но, как мне кажется, нормальных инструментов, чтобы делать нестандартны вещи, легко настраиваемых и устанавливаемых очень немного на данный момент.

RegIon 15.06.2012 18:57

Ответ: axelynx
 
Оба ~175fps (на nVidia)
Intel B940 2.00, 3gb ,Intel+ nVidia GT 550 1gb

mr.DIMAS 15.06.2012 20:28

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

просто есть идея - которую трудно реализовать в одиночку и есть опыт двигописательства
Я бы присоединился( если нужен конечно ), но опыта работы в команде нету никакого, и есть свой проект( который потихоньку расширяется ). Но блин в команде работать было бы неплохо. Разделение труда всетаки.

pozitiffcat 15.06.2012 22:13

Ответ: axelynx
 
есть такая херня, из макса экспортишь куб 8 вершин 12 нормалей, текстурных координат вообще 4 вроде... как объединить это все дело тупо в 24 вершины как должно быть, хэлп по максу не помог... ты решал это?

HolyDel 15.06.2012 23:23

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

Я бы присоединился( если нужен конечно ), но опыта работы в команде нету никакого, и есть свой проект( который потихоньку расширяется ). Но блин в команде работать было бы неплохо. Разделение труда всетаки.
свой проект это звуковой движок? теоретически можно объеденить.
ведь axelynx это multimedia engine, это было бы очень круто, так как звука у меня нет.

Цитата:

есть такая херня, из макса экспортишь куб 8 вершин 12 нормалей, текстурных координат вообще 4 вроде... как объединить это все дело тупо в 24 вершины как должно быть, хэлп по максу не помог... ты решал это?
да я это решил, но не совсем оптимально.
просто у меня сколько фейсов, столько вершин * 3, а дальше все просто:
http://code.google.com/p/axelynx/sou...urface.cpp#401

все таки подумай над моим предложением объединить усилия :)

pozitiffcat 16.06.2012 00:22

Ответ: axelynx
 
Блин сколько фейсов, столько вершин * 3 я так тоже делал, но это отстой

SBJoker 16.06.2012 00:55

Ответ: axelynx
 
Когда всё в кадре:
С светом: 740
Без света: 1070-1090
Конфиг в подписи

radiobutton 16.06.2012 09:26

Ответ: axelynx
 
Когда всё в кадре:
Со светом: 880
Без света: 930

i5-2500k

Количество ядер 4
Техпроцесс 32 нм
Частотные характеристики
Тактовая частота 3300 МГц
Системная шина DMI
Интегрированное графическое ядро есть, 1100 МГц
Встроенный контроллер памяти есть, полоса 21 Гб/с
Кэш
Объем кэша L1 64 Кб
Объем кэша L2 1024 Кб
Объем кэша L3 6144 Кб


XFX 6770

Частота графического процессора 850 МГц
Объем видеопамяти 1024 Мб
Тип видеопамяти GDDR5
Частота видеопамяти 4800 МГц
Разрядность шины видеопамяти 128 бит
Частота RAMDAC 400 МГц

Число универсальных процессоров 800
Версия шейдеров 5.0
Число текстурных блоков 40
Число блоков растеризации 16
Максимальная степень анизотропной фильтрации 16x
Максимальная степень FSAA 24x

Morganolla 16.06.2012 11:15

Ответ: axelynx
 
Без света 700-750
Со светом 500-600

А движок можно бесплатно использовать? И в комерческих?

HolyDel 16.06.2012 14:21

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

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

HolyDel 01.07.2012 03:28

Ответ: axelynx
 
Доброго времени суток.

Выкладываю демку физики:
скрин:


ссылка (по хиту левой кнопки мыши спаунится бокс и летит в направлении камеры):
www.likosoft.com/download/PhysicsDemo.zip

Движок становится "почти" проприетарным. Сурсы его будут выкладываться примерно раз в полгода. Причем это будут сурсы полугодичной давности.
Бинарники будут собираться от раза до четырех в месяц.

Планируется охват платформ: Windows, Linux, MacOS, iOS, Android

Использовать будет смысл для нестандартных графических демок / игр.

Бороться с тем же юнити в области обычных игр нет смысла - остаются нестандартные игры / нестандартные графические демки.
Остается только давить на недостаток всех унивверсальных систем - это их скорость :) Оптимизации и дальше буду уделать значительное время и силы.

В этом плане вырабатывается философия движка:
1) Движок это его интерфейс. Необязательно символ в символ.
Если есть, скажем, на плюсах:
Код:

Window *end = eng->AddWindow();
Canvas *canvas = wnd->GetCanvas();

и на шарпе:
Код:

Window wnd = eng.AddWindow();
Canvas canvas = wnd.GetCanvas();

это один и тот же движок.

2) В отказе от универсальности теряем часть железа:
не поддурживаются видеокарты слабее 8xxx, не поддерживаются устройства с ES 1.0

3) Если пользователь не имеет прибыли со своего проекта - то использовать движок всегда можно будет бесплатно.
На мобильных платформах думаю ввести какое-нибудь очень небольшое роялити - 1% - 3%, если система и в правду будет избавлять от лишнего геммороя

4) Отказ от C++0x и stl. Оно не везде есть. И даже от #pragma once есть не везде. Мир за пределами винды жесток :)
Вообще довольно много прийется переписать для этого. Хоть и внутри реализации в основном, но все же.
Понадобятся свои строки, вектора, списки.

5) Абстрактные файлы - ресурсы могут грузиться откуда угодно. С файла, с памяти, с архива - по сети.

6) Простая инсталяция и минимальный порог вхождения (очевидно выше чем у блица, но, хотелось бы, чтобы был ниже чем у огра и даже иррлихта)
Документация доксигеном и только на английском.

7) Тулзы не критично. Ибо каждая игра должна бросто кичиться уникальностью. Иначе есть юнити.

Сейчас в планах докрутить частично физику (твердые тела, мягкие тела, хуллы, тримешы, хейтмапы)
сделать нормальный экспортер с макса (пусть даже на скриптах, который бы экспортировал всю иерархию сцены и сохранял как минимум текстуры)
прикрутить в каком-нибудь виде lua
убрать stl
убрать C++0x
убрать layout-ы с шейдеров (стандартизировать именна аттрибутов и юниформов)
ну и начать потихоньку комментировать существующие части интерфейса для создания справки doxygen-ом
Вероятно, к 01.01.2013 должна быть версия хоть как-нибудь пригодная для использования, хотя бы на платформе Windows.

Чем вы можете помочь проекту? Самое простое - просто тестировать демки.
Мне важно проверять их на максимально широком спектре оборудования (удовлетворяющего системным требованиям).

Можно попробовать установить и попытаться написать какую-нибудь демку, затем сказать мне обо всех неоднозначных моментах, которые я постараюсь исправлять.

Если кто решит помочь с написанием кода самого движка / сэсплов, то тут уже можно вести речь о скромной денежной компенсации с моей стороны :)

ну вот. такие дела.

Hartmann1 01.07.2012 03:50

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

Сообщение от HolyDel (Сообщение 232026)
4) Отказ от C++0x и stl. Оно не везде есть.

Про стандарт непонятно, что значит не везде есть? Компилятор gcc полностью его поддерживает, при этом может компилять под разные платформы + есть llvm backend.
stl-port чем не устраивает?

Цитата:

Сообщение от HolyDel (Сообщение 232026)
5) Абстрактные файлы - ресурсы могут грузиться откуда угодно. С файла, с памяти, с архива - по сети.

Ты же стремишься к оптимизации, и тут вдруг такая универсальность. Помоему оптимальнее всего будет загрузка только из пака (в релизе естессно)

HolyDel 01.07.2012 14:43

Ответ: axelynx
 
Код:

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

Цитата:

stl-port чем не устраивает?
тем, что его надо будет с собой таскать ради трех классов (которые несложно написать самому)

Цитата:

Ты же стремишься к оптимизации, и тут вдруг такая универсальность. Помоему оптимальнее всего будет загрузка только из пака (в релизе естессно)
это будет подразумевать создание некого тулсета. специфика движка не подразумевает наличие всяких там редакторов мира. На абстрактный файл тратится три виртуальных вызова. Которые, в принципе, ничто по сравнению с самой загрузкой данных.
Код:

file->open();
file->read(pointer,size);
file->close();


Mhyhr 01.07.2012 18:32

Ответ: axelynx
 
Вложений: 1
1) Вместо текстуры "поля" черный цвет.
2) Скриншоты не скриншотяЦца, в пеинты вставляется полностью прозрачная текстура, видимо из-за пункта 1.
3) Однако физика работает, 200 кубиков без просадки фпс(60).

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

Лог во вложении (булка не грузит htm так что txt переименовать следует).

HolyDel 01.07.2012 19:14

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

Оценил ущербность своего ноутбука
это не ноутбук. это драйвера :)
скриншоты не скриншотятся принтскрином, да.

в любом случае спасибо за тест ))

pozitiffcat 02.07.2012 09:36

Ответ: axelynx
 
Прикольно, что ты решил выйти на новый уровень. Успехов. Я же решил уйти в андроид, буду курить мануалы и т.п. это более актуально, чем под PC.

HolyDel 02.07.2012 13:37

Ответ: axelynx
 
Вложений: 1
Цитата:

Успехов.
спасибо.

Цитата:

Я же решил уйти в андроид, буду курить мануалы и т.п. это более актуально, чем под PC.
Это правильно! но лучше iOS / Android. отличий немного по идее должно быть. Если писать на плюсах. Как я себе это представляю должна быть некотороя обертка с ObjectiveC или JNI на православные плюсы (для ввода, создания активити или еще чего-то в этом роде), а на плюсах уже можно писать игру. И там и там все тот же OpenglES 2.0, который очень похож на forward context OpenGL 3.0. Поэтому я вижу смысл объединить эти платформы и работаю в этом направлении.

Но если ты все же решишь присоединиться - обращайся :)

Сейчас работаем вот с такой штукой:
Вложение 17132

довольно удобно.

Randomize 03.07.2012 06:19

Ответ: axelynx
 
О, сайт заработал снова. Если нужна будет помощь по wordpress - обращайся. Давно с этим движком работаю.

HolyDel 05.07.2012 15:13

Ответ: axelynx
 

Цитата:

Если нужна будет помощь по wordpress - обращайся. Давно с этим движком работаю.
ок. как мне например туда запилить кнопку +1 гугла?

и еще вопрос - как мне там сделать удобную качалку файлов?


выпилил layout-ы. теперь свзяка к именам аттрибутов идет жестко по именам:

"position"
"normal"
"tangent"
"color"
"texcoord0"
"texcoord1"
"boneid"
"weight"
"pointsize"
"nextposition"
"nextnormal"
"nexttangent"
"nexttexcoord"

теперь минимальный уровень гапи не 3.3, а 3.0. ну и как плюс стало более похоже на glsl es.
должно идти на встроенных в i5 / i7 интелах :)

HolyDel 06.07.2012 01:47

Ответ: axelynx
 
сильно ускорил загрузку dds-ок.

раньше на моей машине грузилось примерно 100 ддс-ок DXT1 256x256 в секунду с SSD-шки
то теперь порядка 4500.

если кто еще хочет присоединиться к команде - обращайтесь :)

Randomize 06.07.2012 03:34

Ответ: axelynx
 

Цитата:

Сообщение от HolyDel (Сообщение 232242)
как мне например туда запилить кнопку +1 гугла?

админка->плагины->добавить новый
В поиске прямо так: "Google Plus One Button"
Установить
Активировать
Цитата:

Сообщение от HolyDel (Сообщение 232242)
и еще вопрос - как мне там сделать удобную качалку файлов?

Штатными средствами можно спокойно сделать. Вставка файлов не многим отличается от вставки изображений на страницы.
Если нужна файловая иерархия (разделы, подразделы) то тут поможет плагин: WP-DownloadManager или Wp-Vault

HolyDel 06.07.2012 10:30

Ответ: axelynx
 

Media -> AddNew на больших файлах пишет:
Цитата:

Maximum upload file size: 10MB. After a file has been uploaded, you can add titles and descriptions.
где и как можно увеличить этот размер? на сам сервер хостера больше файлы льются точно.

pozitiffcat 12.07.2012 23:40

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

Сообщение от HolyDel (Сообщение 232242)


ок. как мне например туда запилить кнопку +1 гугла?

и еще вопрос - как мне там сделать удобную качалку файлов?


выпилил layout-ы. теперь свзяка к именам аттрибутов идет жестко по именам:

"position"
"normal"
"tangent"
"color"
"texcoord0"
"texcoord1"
"boneid"
"weight"
"pointsize"
"nextposition"
"nextnormal"
"nexttangent"
"nexttexcoord"

теперь минимальный уровень гапи не 3.3, а 3.0. ну и как плюс стало более похоже на glsl es.
должно идти на встроенных в i5 / i7 интелах :)

сделай переназначение имен атрибутов для гибкости

pozitiffcat 12.07.2012 23:42

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

Сообщение от HolyDel (Сообщение 232287)

Media -> AddNew на больших файлах пишет:

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

я заливаю по ftp, так проще

HolyDel 12.07.2012 23:49

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

сделай переназначение имен атрибутов для гибкости
всмысле?

я в общем тоже. но раз есть web качалка, что бы не попользоваться.

хотя ftp все равно рулит, и в плане скорости и в плане удобства.

pozitiffcat 13.07.2012 00:05

Ответ: axelynx
 
У мня можно вызвать шейдеру setAttributeNames и имена атрибутов, их лайоуты сохраняются в GLint

Randomize 13.07.2012 00:05

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

Сообщение от HolyDel (Сообщение 232287)

Media -> AddNew на больших файлах пишет:

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

Похоже на настройки php
надо проверить константы.
Выполни ка следующий php код - посмотрим что покажет.
PHP код:

<pre><?
echo ini_get('post_max_size') . PHP_EOL;
echo ini_get('upload_max_filesize') . PHP_EOL;
?>

И да, что у тебя за хостер?

HolyDel 13.07.2012 00:44

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

Выполни ка следующий php код - посмотрим что покажет.
знать бы еще как)))

Цитата:

И да, что у тебя за хостер?
justhost.com

Цитата:

У мня можно вызвать шейдеру setAttributeNames и имена атрибутов, их лайоуты сохраняются в GLint
чего?

у тебя есть VAO в котором указано где лежит позиция например.
теперь ето число ты должен скормить шейдеру, так?
либо через BindAttribute либо через layout(location=) в тексте шейдера?

Randomize 13.07.2012 00:59

Ответ: axelynx
 
Надо же! Сервис!
https://my.justhost.com/cgi/help/110
:B

HolyDel 13.07.2012 01:27

Ответ: axelynx
 
знаешь, кажись сработало )))

еще вопрос - как мне сделать древовидное меню справа? хочу что то вроде:

Код:

axelynx
*downloads
**engine
**samples
**utilites
*screenshots
*information
**features
**help
**tutorials
tools
*normalmapmaker
*textureconvertor

избавился от C++0x.
собирается в стандарте C++98 gcc.
ну и msvs2010 cl

pozitiffcat 13.07.2012 09:03

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

Сообщение от HolyDel (Сообщение 232851)
знать бы еще как)))
у тебя есть VAO в котором указано где лежит позиция например.
теперь ето число ты должен скормить шейдеру, так?
либо через BindAttribute либо через layout(location=) в тексте шейдера?

Без вао. По моим тестам, оно производительности не дает.
Код:

void CStaticMesh::draw(CShader* shader)
{

        RENDER->bindBuffer(_vbo, BT_ARRAY);
        RENDER->vertexAttribPointer(shader->getPositionAttrib(), 3, RENDER->oFLOAT(), RENDER->oFALSE(),  sizeof(Vertex), (const void*)0);
        if(shader->getNormalAttrib() != -1) RENDER->vertexAttribPointer(shader->getNormalAttrib(), 3, RENDER->oFLOAT(),  RENDER->oFALSE(),sizeof(Vertex), (const void*)12);
        if(shader->getTexcoordAttrib() != -1)RENDER->vertexAttribPointer(shader->getTexcoordAttrib(), 2, RENDER->oFLOAT(), RENDER->oFALSE(), sizeof(Vertex), (const void*)24);

        RENDER->bindBuffer(_ibo, BT_ELEMENT);
        RENDER->drawElements(RENDER->oTRIANGLES(), _icount, RENDER->oUNSIGNED_SHORT(), 0);
}

Тут чуть-чуть мой синтаксис... но думаю понятно
shader->getPositionAttrib() и подобные функции хранят локации в шейдере. Перед любым действием с шейдером, его нужно забиндить если он не текущий
А и еще перед биндом нового шейдера дизаблить старые атрибуты, и энаблить атрибуты нового шейдера.

Randomize 13.07.2012 09:13

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

Сообщение от HolyDel (Сообщение 232854)
еще вопрос - как мне сделать древовидное меню справа? хочу что то вроде:

Тут уже без кодинга увы никак. Предлагаю списаться в icq (см. профиль)

HolyDel 15.07.2012 23:22

Ответ: axelynx
 
отказался от OpenCL, и соотвественно softbody.
так как OpenCL нет не то что на мобильных платформах, а даже на intel HD-ях изпоткаропки.
от стл решили не отказываться, так как стлпорт есть в ндк. (я думал его надо отдельно таскать вместе с проектом). а значит стл есть на всех целевых платформах.

теперь движок работает на 3.0 контексте
и номинально на HD 2000 / HD 3000 , то есть том самом встроенном интеловском говнеце. не то чтобы быстро работает правда, но работает. во фьючерсы можно писать ))
на этой неделе залью версию 1.08 с физикой, правками под HD карточки и несколькими фиксами. + туда же пойдет ряд туторов.

moka 16.07.2012 01:19

Ответ: axelynx
 
К 28ому, нужно будет сделать визуализацию на вечеринку, завязка будет с реал-тайм данными из спектра звука, используя Bass или Fmod.

Визуализация тупо партиклы, может ещё убер пост-шейдер с параметрами для реалтайм изменений.

Как думаешь, на C#, будет ок замутить, готов к подобным экспериментам axelynx?
Да и как дело обстоит с минимальным 2D, или хотя бы возможностью создания ортхо камеры, с отрисовкой примитивов в виде линий / квадов и текста?

HolyDel 16.07.2012 01:39

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

орто камеры есть, 2Д есть (прямоугольники, линии, пользовательские фигуры), текст есть - юникод.

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

jimon 16.07.2012 02:09

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

Сообщение от MoKa (Сообщение 233007)
К 28ому, нужно будет сделать визуализацию на вечеринку, завязка будет с реал-тайм данными из спектра звука, используя Bass или Fmod.

Визуализация тупо партиклы, может ещё убер пост-шейдер с параметрами для реалтайм изменений.

Как думаешь, на C#, будет ок замутить, готов к подобным экспериментам axelynx?
Да и как дело обстоит с минимальным 2D, или хотя бы возможностью создания ортхо камеры, с отрисовкой примитивов в виде линий / квадов и текста?


Глянь http://vvvv.org/

moka 16.07.2012 02:28

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

Сообщение от HolyDel (Сообщение 233008)
есть очень быстрые спрайтовые системы.
может обрабатываться порядка миллиона спрайтов.
нет связи спрайовой системы с гпу (т.е. нарисовали во float текстуру что нить и оно автоматом позиционирует спрайты, например), но это можно допилить.

орто камеры есть, 2Д есть (прямоугольники, линии, пользовательские фигуры), текст есть - юникод.

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

С#, т.к. его знаю отлично, и легко на нём шустро разрабатывать. Я с Ксорсом за 7 часов во время вечеринки экстремально программировал визуалки, было очень прикольно.
Обычно управляю прямо с клавиатуры напрямую, никакого гуи.

jimon, нада глянуть..

HolyDel 16.07.2012 12:13

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

С#
тогда, к сожалению, никак. делать сишный интерфейс не хочется. а врапить всю иерархию классов довольно муторно.

HolyDel 18.07.2012 15:08

Ответ: axelynx
 
залита версия 1.08.
http://www.likosoft.com/download/2/

до конца недели будет несколько туторов тут:
http://likosoft.com/axelynx_wiki/ind...itle=Tutorials

dsd 19.07.2012 22:38

Ответ: axelynx
 

а куда про баги писать?

Код:

class my_Cam{
public:
Camera *cam;
Scene *s;


my_Cam(Scene *sc){
s=sc;
Camera *cam = s->AddCamera();

}

void Update(){
cam->Move(0.1,0,0);
}

};



вот если такой класс делаю, то приложение падает на любой команде сдвигающей камеру. притом теже команды с камерой как в стандартном примере работают. На 107 версии работало, вроде.

Код:

#include <axelynx/axelynx.h>
using namespace axelynx;


class my_Cam{
public:
Camera *cam;
Scene *s;


my_Cam(Scene *sc){
s=sc;
Camera *cam = s->AddCamera();

}

void Update(){
cam->Move(0.1,0,0);
}

};

int main()
{
        Engine *eng = Engine::Init();
        Window *wnd = eng->AddWindow(800,600);
        //TODO: Place your resource loading and scene creating code here

        Scene *s = eng->AddScene();
        //Camera *cam = s->AddCamera();
        my_Cam *cam= new my_Cam(s);
        Surface *cube = StandartSurfaces::Cube();
        Entity *body = s->Add(cube);
        StandartShaders::Render::OnlyNormals()->SetUniform(Shader::SU_LIGHTPOS,vec3(0,5,7));
        body->SetShader(StandartShaders::Render::OnlyNormals());
        body->SetPosition(0,0,-6);

        Entity *turret = s->Add(cube);
        turret->SetParent(body);
        turret->SetShader(StandartShaders::Render::OnlyNormals());
        turret->SetPosition(0,0.0,-1.25);
        turret->SetScale(0.25);

        turret = turret->Copy();
        turret->SetPosition(0,0,1.25);

        turret = turret->Copy();
        turret->SetPosition(0,-1.25,0);

        turret = turret->Copy();
        turret->SetPosition(0,1.25,0);

        turret = turret->Copy();
        turret->SetPosition(-1.25,0,0);

        turret = turret->Copy();
        turret->SetPosition(1.25,0,0);

        float dx=0,dy=0;

        while(wnd->isRunning())
        {
                if(KeyDown('A'))
                        dx -= 1.0;
                if(KeyDown('D'))
                        dx += 1.0;
                if(KeyDown('W'))
                        dy -= 1.0;
                if(KeyDown('S'))
                        dy += 1.0;
                //TODO: Place your rendering code here
                float dt = Timer::Delta() * 0.01;

                dx *= 0.95;
                dy *= 0.95;
                body->Turn(dt*dy,dt*dx,0);
                cam->Update();

                s->Render();
                wnd->Flip();
        }
        //TODO: Place your deinitalize code here
        eng->Free();
}


HolyDel 20.07.2012 01:40

Ответ: axelynx
 
у тебя ошибка в конструкторе (наверное ты уже и сам догадался)

Код:

my_Cam(Scene *sc){
s=sc;
Camera *cam = s->AddCamera(); //создает локальную переменную cam, а в my_Cam::cam - мусор
}

должно быть:
Код:

my_Cam(Scene *sc){
s=sc;
cam = s->AddCamera();
}

так работает.

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

pax 20.07.2012 07:40

Ответ: axelynx
 
Все жду когда движок заведется на Andtoid/iOS с примерами :-). Стал бы его юзером, по началу как хобби, потом может бы и с Unity/C# перебрался бы на С++.

Кстати вопросы (а то я что-то уже забыл, спрашивали или нет):
1. Будут или есть какие-то 2d помошники типа SpriteBatch в XNA?
2. Pixel Perfect Rendering для 2d?
3. Круто было бы иметь для 2d физики поддержку box2d из коробки.
4. Есть ли возможность сейчас подсвечивать текст тегами, чтобы выделять отдельные слова цветом как в чате ники/время.

pax 20.07.2012 10:16

Ответ: axelynx
 
Скачал кстати утром двиг, смотрел демки. На демке с названием FakeSpheres чтоли (название не помню), семерка поймала синий экран. Комп включать не стал, на работу пора было.

HolyDel 20.07.2012 12:05

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

1. Будут или есть какие-то 2d помошники типа SpriteBatch в XNA?
будет ImageSystem с объединением разных спрайтов в атлас.

Цитата:

2. Pixel Perfect Rendering для 2d?
хз как это сделать для нецелых координат. в прошлом двиге был субпиксельный рендеринг (когда картинку можно было сдвинуть на треть пикселя например), но там картинка получалась немого размытой.

Цитата:

3. Круто было бы иметь для 2d физики поддержку box2d из коробки.
ты уже второй человек, который спрашивает. повод задуматься. вообще я не планировал 2д физику изподкаробки.

Цитата:

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

Цитата:

Скачал кстати утром двиг, смотрел демки. На демке с названием FakeSpheres чтоли (название не помню), семерка поймала синий экран. Комп включать не стал, на работу пора было.
странно. конфигурацию компа и логи бы.

jimon 20.07.2012 12:40

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

хз как это сделать для нецелых координат. в прошлом двиге был субпиксельный рендеринг (когда картинку можно было сдвинуть на треть пикселя например), но там картинка получалась немого размытой.
мы для pixel-perfect чуть по другому считаем UV из атласа (чтобы тексель в пиксель попадал), и потом тупо приводим координаты вертексов спрайта к пикселям вьюпорта (это уже после model-view трансформации, которая на cpu для спрайтов считается ибо они в один батч ложатся если между ними ничего не встрянет типа переключения текстуры которых всего 2-4 или рендер геометрии)

Цитата:

4. Есть ли возможность сейчас подсвечивать текст тегами, чтобы выделять отдельные слова цветом как в чате ники/время.
мы сделали всего лишь анализ текста наперёд при рендере и замена выражений типа $xxx$, где x от 0 до F, на цвет вертекса, всё равно текст рендерится такими же вертексами что и спрайты, чтобы в один и тот же батч попадать (у меня, если всё ок, то весь гуй за 1 дип рисуется)

HolyDel 20.07.2012 12:56

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

и потом тупо приводим координаты вертексов спрайта к пикселям вьюпорта
а он при вращении не будет дергаться?

Цитата:

мы сделали всего лишь анализ текста наперёд при рендере и замена выражений типа $xxx$, где x от 0 до F, на цвет вертекса, всё равно текст рендерится такими же вертексами что и спрайты, чтобы в один и тот же батч попадать (у меня, если всё ок, то весь гуй за 1 дип рисуется)
ну это только цвет. а если еще размер там, или шрифт - жирный или нет.

pax 20.07.2012 13:38

Ответ: axelynx
 
Я ща на работе, у меня кофиг был записан в подписи, которая при прошлом дауне форума слетела. Примерно следующая: i5-760, 8гб ОЗУ, 512мб GF9600

jimon 20.07.2012 14:50

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

а он при вращении не будет дергаться?
при вращении, хоть убейся, не бывает pixel perfect рендеринга, если дизайнеру надо вращать пиксельный спрайт где размер "художественного пикселя" близок к аппаратному пикселю - то уволить такого дизайнера надо, а если "художественный пиксель" около 8*8 реальных - то и без pixel perfect неплохо рисуется

Цитата:

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

Hurrit 20.07.2012 16:15

Ответ: axelynx
 
Вложений: 1
запустил сэмпл HelloWorld, выскочила ошибка, лог прилагается. Запускал на маке через VMWare Fusion, windows 7, версия макбука: MacBook Pro 2011 late.

HolyDel 20.07.2012 16:38

Ответ: axelynx
 
нет функции для поднятия нового контекста.
видимо что то с драйверами. попробуй поставить на виртуальную машину драйвера для твоей карточки.

Hurrit 20.07.2012 18:01

Ответ: axelynx
 
на виртуалке видеокарта определяется как VMWare SVGA 3D (а стоит так-то AMD Radeon HD 6750M), и также пишет что драва свежие.

pax 20.07.2012 19:19

Ответ: axelynx
 
Вложений: 1
Не знаю, записался ли лог при падении, вот тот который был

HolyDel 20.07.2012 23:01

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

на виртуалке видеокарта определяется как VMWare SVGA 3D (а стоит так-то AMD Radeon HD 6750M), и также пишет что драва свежие.
возможно можно как-то виртуальную машину настроить, или обновить.
если нет - то прийдется ждать версию под мак. или купить ноут под винду.

Цитата:

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

Hurrit 21.07.2012 04:30

Ответ: axelynx
 
ну тогда жду порт под мак, надеюсь, ты поставишь эту задачу на верхнюю строчку в todo-листе.

HolyDel 24.07.2012 03:13

Ответ: axelynx
 
добавлена лод-система.

синтаксис:
Код:

asteroids[i].ent = s->Add(asteroid_lod[0]);

asteroids[i].ent->SetLodGeometry(asteroid_lod[1],50);
asteroids[i].ent->SetLodGeometry(asteroid_lod[2],150);
asteroids[i].ent->SetLodGeometry(asteroid_lod[3],200);
asteroids[i].ent->SetLodGeometry(asteroid_lod[4],250);
asteroids[i].ent->SetLodGeometry(asteroid_lod[5],350);
asteroids[i].ent->SetLodGeometry(asteroid_lod[6],550);
asteroids[i].ent->SetLodGeometry(asteroid_lod[7],620);
asteroids[i].ent->SetLodGeometry(asteroid_lod[8],750);

скриншот:

видео:
http://www.youtube.com/watch?v=9hlma...ature=youtu.be
демка (с исходниками):
http://www.likosoft.com/download/3/

демка не соберется. ибо в версии 1.08 этого функционала еще нет.

управление - WASD + мышь. R - включать / выключать сетку.

moka 24.07.2012 03:48

Ответ: axelynx
 
fps: 160 - 250
GeForce 250 GS, 2Gb
Intel i5 700, 2.4Ghz (4 Cores)
wireframe сильно садит fps, это нормально?

А можно на более лоу-поли посмотреть как будет работать лод, и чтобы были объекты не двигающиеся / крутящиеся тоже?

HolyDel 24.07.2012 10:53

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

wireframe сильно садит fps, это нормально?
для радеонов - да. для нвидии не замечал такого.

Цитата:

А можно на более лоу-поли посмотреть как будет работать лод, и чтобы были объекты не двигающиеся / крутящиеся тоже?
ок. соберу позже и такую версию.

pax 24.07.2012 10:55

Ответ: axelynx
 
Вложений: 1
FPS 52+
Встроенное видео в Core i5.
Мышь дойдя до конца экрана не дает поворачивать камеру (как в видео пролететь полный круг не получилось).

HolyDel 24.07.2012 11:00

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

FPS 52+
Встроенное видео в Core i5.
нифига ж себе. вот чего не ожидал - так того, что на встроенном интеловском решении будет вменяемый фпс.

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

pax 24.07.2012 11:01

Ответ: axelynx
 
при Wireframe фпс снижается до 10+

Taugeshtu 24.07.2012 18:06

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

вот чего не ожидал - так того, что на встроенном интеловском решении будет вменяемый фпс.
И зря.
То же видео (скорее всего... у меня Ivy Bridge) - нормальный фпс в Rage, Skyrim, Borderlands, Mirror's Edge... Настройки качества не самые высокие, конечно, но средние или выше средних.

UPD:
69 ФПС при максимальной нагрузке (2.25 мегатриса), когда астероиды вдалеке - 400+
Видео: Intel HD4000


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

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