Автор | Сообщение | ||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 02-09-2009 18:25 | ||||
Разработка пока находится на ранней стадии, но уже есть, что показать. Исходники и список функций с описанием на английском прилагаются. Пример показывает, как грузить и анимировать модель MD3. В комментах - несколько других нововведений, например, Z-тени. xtreme3d-2.1a-dev.zip |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 02-09-2009 20:03 | ||||
Архив поврежден Удалось восстановить только исходный код, но ведь демку тоже хочется глянуть. Кстати, а обновление по 06 год OpenGL не старовато ли? Или там свои нюансы? | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 03-09-2009 11:56 | ||||
Перезалил. А причем тут обновление OpenGL? |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 03-09-2009 18:07 | ||||
Там вирус
Ну мне всегда казалось, чем новее версия чего либо, тем это 'либо' лучшее... |
|||||
Душелов мастер Группа: Участники Сообщений: 115 |
Добавлено: 03-09-2009 19:18 | ||||
и у меня аваст в этом архиве вирус нашел. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 03-09-2009 20:03 | ||||
Да нет там никаких вирусов, ну что вы прям как дети! | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-09-2009 12:09 | ||||
А, вон оно что: Win32.Induc.a Без паники, товарищи, вирус не опасный. Вот что о нем пишут: "В интернете появился специфичный для Delphi вирус. Суть его в том, что заражённая программа ищет на диске установленные версии Delphi и, если находит, изменяет файл SysConst.dcu (старая версия сохраняется под именем SysConst.bak), и после этого все программы на Delphi, скомпилированные на этом компьютере, начинают точно так же заражать Delphi на тех компьютерах, где они запускаются. В настоящее время вирус не несет функциональной нагрузки помимо самого заражения, скорее он предназначен для демонстрации и тестирования нового вектора заражений." Так что если у кого Delphi стоит - на всякий случай проверьте, нет ли в папке /Lib файла SysConst.bak. Если есть, удалите SysConst.dcu и переименуйте SysConst.bak в SysConst.dcu. Во всяком случае, так советуют. Однако быстро на Народе отреагировали! И сайт уже успели временно закрыть. Они что, каждый день все файлы проверяют? |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 05-09-2009 23:20 | ||||
А может они форум прочитали? Зачем каждый день? Проверяют, но через некоторое время после того, как вы залили файл.
Я так и не услышал ответа, я, разве, не прав? Или все же есть нюансы, которые я не понимаю? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-09-2009 20:02 | ||||
Дело в том, что OpenGL 2.0 пока поддерживают не все видеокарты. Отсюда вывод: пока будет реализована только функциональность OpenGL 1.x. Да и то не полностью, так как там действительно есть свои нюансы. Например, я до сих пор не уверен, получится ли добавить поддержку шейдеров. GLScene прекрасно поддерживает Cg - отличный во всех отношениях язык для написания шейдеров, но с этим связана одна проблема. Для передачи параметров в вершинную или фрагментную программу шейдера используются специальные свойства компонентов, берущие в качестве значения процедуру. Эту процедуру несложно "вшить" в тело библиотеки, но тогда пользователь не сможет ее менять. Ведь параметры могут быть разные и вообще их может быть разное количество. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 06-09-2009 20:13 | ||||
Понятно, оказывается не все так просто. Лично у меня видеокарта GeForce 7600 GS, имеется полная поддержка OpenGL 2.0 (ксати во многом эта поддержка зависит от драйверов для этой самой видеокарты). Многие могут протестировать свою систему на функциональность OpenGL с помощью программы OpenGL Extensions Viewer 3.0, очень хорошая вещь. Вопрос абсолютно, как многие выражаются, 'нубский'. Возможно ли сделать одновременную поддержку двух версий OpenGL 1.x и 2.0 ? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 14-09-2009 11:51 | ||||
Да, прога полезная, сам тестировал.
Думаю, да. Правда, мои познания OpenGL довольно поверхностные, я толком не знаю, чем второй отличается от первого. Знаю только, что в OpenGL 2.0 есть язык описания шейдеров GLSL, который не поддерживается в OpenGL 1.x. Вот моя видеокарта не поддерживает OpenGL 2.0, поэтому я не могу работать над интеграцией GLSL. Поэтому, можно сказать, пока будем придерживаться OpenGL 1.x. Кстати, насчет Cg: проблему я решил, но, по техническим причинам, придется ограничиться фиксированным максимально возможным количеством шейдеров. Вот только какое это должно быть количество? Я, признаться, никогда раньше не писал приложения, использующие шейдеры, и даже не знаю сколько их обычно используется. Шести, интересно, будет достаточно? В смысле, шести пар: 6 вершинных и 6 пиксельных шейдеров. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 20-09-2009 11:40 | ||||
Ну как же не знаете, там же даже в исходниках, вроде, написаны изменения и исправления!
Обидно прям хоть сам садись и пиши под новую версию...
Ну возьмем тот же U3D, какие там обычно используются шейдеры? Например в TexDemo? От этого и надо исходить, как мне кажется. |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 20-09-2009 12:11 | ||||
Каких исходниках? GLScene?
Да не так уж и обидно. Собственно, что есть GLSL? Тот же Cg, только немного расширенный.
Ну ладно, для начала - шесть, а там посмотрим. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 20-09-2009 12:33 | ||||
Я посмешил немного, там оказывается изменения в классах, вроде. Я просто при первом взгляде думал что история версий, но оказывается немного другое... GLScene.pas
Не буду спорить, так как наверняка не знаю, сам полазаю))
Я наверное не то сказал, извините Я имел ввиду просто посмотреть наиболее используемые там шейдеры, так как там они видны... |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 19:13 | ||||
Мои последние наработки: BumpShader, теперь с поддержкой бликов по Блинну и Фонгу. Левое нижнее изображение - вариант без бликов (как в версии 2.0.2.0). |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 19:17 | ||||
Новинка: PhongShader, реализующий освещение по Фонгу. Обратите внимание на качество бликов на мелких деталях. Нижний чайник - с простым вертексным освещением (для сравнения). |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 23-09-2009 19:49 | ||||
Супер! Жду не дождусь, когда выйдет новая версия)) А вот тени теперь не много жрут памяти, а? P.S Странная у вас аватарка, я даже испугался сначала! |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 19:57 | ||||
Решать это не в моей компетенции. Это - к товарищам разработчикам GLScene. Я его компонеты серьезно модифицировать пока не готов. А на аватаре у меня теперь - логотип сайта wincustomize.com, хамелеон по имени Winky. А то Волкодав как-то поднадоел уже. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 23-09-2009 19:59 | ||||
Ну я имел ввиду, что тесты показывают? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 20:02 | ||||
А я пока не знаю, тенями еще не занимался. А что, серьезно много памяти потребляют? И какие именно - ShadowVolume или ShadowPlane? |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 23-09-2009 20:05 | ||||
Ды те которые в старой версии, тормознутые и памяти едят много, сами знаете, а в том примере z-тени я сделать не смог, ошибку неизвестную выдавал!Поэтому и спрашивал. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 20:10 | ||||
Ну, я думаю, ShadowVolume как был тормознутый, так и останется. А Z-тени еще более тормознутые. Я с ними еще повожусь, может удастся как-нибудь оптимизировать, но ничего не обещаю. Так что с тенями ситуация не очень. Правда, скажу по секрету, есть там один компонентик... Позволяет проецировать текстуры на окружающие объекты. Работает довольно быстро. Я думаю, с помощью него можно будет сделать и тени. |
|||||
Душелов мастер Группа: Участники Сообщений: 115 |
Добавлено: 23-09-2009 20:17 | ||||
красотища. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 23-09-2009 20:39 | ||||
Будем надеяться, что что-нибудь придумаете...
Я себе не представляю конечно как это можно сделать, но надеюсь вы покажите как) |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 23-09-2009 21:11 | ||||
А это вот примерно так: |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-10-2009 10:13 | ||||
Вынужден сообщить неприятное известие. К сожалению, разработку X3D 2.1 придется отложить до лучших времен... Многие компоненты просто-напросто отказываются работать через DLL. Например, Blur. Мне также остается неизвестным принцип работы некоторых важных функций, связанных с лайтмэппингом. Я, конечно, могу просто отказаться от их внедрения, но кому нужен движок без блура и лайтмэппинга? Особенно если все это уже есть и прекрасно работает в старой версии X3D. Иными словами, как оказалось, я пока чисто технически не в состоянии реализовать стандартный функционал X3D. Поэтому разработку придется приостановить. Я лучше буду заниматься портированием X3D под C++. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 04-10-2009 10:35 | ||||
Я надеюсь, что вы на многих компьютерах пробовали как оно работает?
А спросить на форумах по Glscene не представляется возможным?
Ну, тогда хоть исходники выложите, люди пороются...
Знаете, а я бы на вашем месте сделал иначе, я бы дописал движок как он есть, а потом нашел бы человека, который был бы в состоянии мне же помочь(из того же сообщества Glsсene, пускай даже англоязычного), конечно встает вопрос, где такого человека найти, но как говорится : 'кто ищет, тот всегда найдет'...а вообще жаль конечно |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-10-2009 12:51 | ||||
Пробовал на двух. Проблема в том, что Blur работает сам по себе, если сделать с ним приложение на GLScene, но через DLL - отказывается.
Спрашивал, не помогли толком. Я уж где только не искал, хоть какую-нибудь захудалую демку, хоть какое-либо упоминание - все тщетно.
Выложу конечно. Да только кто захочет в них рыться, ума не приложу.
В принципе, так сделать можно. Но я никогда еще не видел такого программиста, который просто так взялся бы разбирать чужой код, не обругав при этом всю задумку целиком. А я точно уверен, там найдется что обругать. Думаете этот программист закроет глаза на все эти недочеты и будет решать конкретную проблему? Нет, он скажет что-нибудь типа "А зачем вообще делать ХХХ, когда можно YYY?", или вовсе "А зачем вообще писать порт GLScene под GM?". И что я ему отвечу? Вот поэтому-то я и не рассчитываю на помощь ни со стороны сообщества GLScene, ни с какой-либо другой. Но я на днях еще попробую пару способов (с блуром), может прокатит. Насчет лайтмэпов не знаю. В принципе, я внедрил загрузчик формата LOD, он прекрасно грузится с лайтмэпами, но вот с другими форматами беда, потому что они все не поддерживают второй набор UV-координат. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 04-10-2009 13:45 | ||||
На двух? Выложите пример с blur'ом. Тогда напрашивается вопрос, а как же автор нынешней Xtreme умудрился сделать его? Кстати, ведь этот шейдер работает в программном режиме, да? А нельзя ли его реализовать через шедеры? Те, что *.gl по-моему... Мне почему-то кажется, что надо брать версию 2.x, жаль, что видеокарта не поддерживает ваша её(
Понятно(
Я, например, захочу! Как раз выложите с blur'ом...
Это конечно понятно все, но помощь же состоит в том, что бы конкретное что-то сделать или вообще разобраться в чем-то, а не разбирать весь код? Согласен, мало кто захочет, но мир вроде не без добрых людей Или я слишком наивный?
Будем ждать вестей! |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-10-2009 14:18 | ||||
Это вообще не шейдер. Стандартный блур GLScene просто берет отрендеренную картнику из буфера кадра, копирует ее в текстуру и рисует поверх экрана, многократно повторив. Простейший метод, не использующий никаких шейдеров, и потому работающий на любых видеокартах. Оно, конечно, понятно, что через шейдеры блур будет более качественный и быстрый, но все же хотелось бы, чтобы и такой вариант поддерживался.
Такие добрые люди может и есть, но к ним, как правило, нужно становиться в очередь . |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 04-10-2009 14:36 | ||||
Ах вон оно что. Ясно теперь. Я кстати установил себе GLscene, теперь вот в примерах роюсь, да изучаю потихоньку
И только поэтому вы бросаете разработку? Это по меньшей мере странно...
а вы уже записались на прием? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-10-2009 14:54 | ||||
Да не только поэтому. Это так, частный случай. На самом деле, таких ситуаций у меня множество.
Предпочитаю самолечение Сам себе не поможешь - никто не поможет. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 04-10-2009 15:16 | ||||
Вот вопрос нагрянул, а как можно использовать OpenGL 2.0 в вашем проекте? Что для этого нужно сделать? Просто хочется посмотреть на рендер. Я конечно могу и сам разобраться, но на это уйдет время, поэтому спрашиваю у вас. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-10-2009 15:32 | ||||
А я сам пока не знаю. У меня ведь OpenGL 2.0 не поддерживается, так что я лишен возможности что-либо тестировать. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 04-10-2009 16:00 | ||||
Жаль, ладно я сам разберусь. Кстати поставил себе версию такую же как у вас по началу, а потом обновил до августа сего года и уже нормально ваш проект компилится не хочет. Придется основу с нуля писать, чтобы лучше разобраться... | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 05-10-2009 21:05 | ||||
Кстати, поставте себе новее версию, может проблем меньше будет. Если что, вот ссылка Скачать Версия от 27.08.09г Я все-таки надеюсь, что вы допишите новую версию... |
|||||
bober частый гость Группа: Участники Сообщений: 12 |
Добавлено: 06-10-2009 12:57 | ||||
Надеюсь, что Вы Gecko, сможете преодолеть трудности и подарите народу действительно хороший движок для ГМ, а мы в свою очередь будем создавать свои шедевры. |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-10-2009 17:16 | ||||
Хочу лишний раз оговориться: 1. Даже если я решу все технические проблемы, и 2.1 все-таки выйдет, ничего принципиально нового он из себя не будет представлять. Все тот же Xtreme3D. 2. С внедрением некоторых возможностей (например, шейдеров) связаны колоссальные трудности. Причина - в примитивности GML, ограниченных возможностях DLL, запутанности и чрезвычайно сильной "завязанности" этих возможностей на некоторых специфических чертах Pascal и объектной ориентированности Delphi. Так что шейдеров, возможно, и вовсе не будет. 3. Текущая версия Xtreme3D является наиболее стабильной. Я вряд ли смогу довести свою версию до такого уровня стабильности за ближайшее время. 4. Новых возможностей по работе с ландшафтом не будет, потому что их нет в самой GLScene. Из воздуха я ничего достать не могу. 5. Помните, что от меня мало что зависит. Я не профессиональный программист, я только начинаю изучать Delphi, я слабо разбираюсь в OpenGL. Не надо ждать от меня чудес. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 29-10-2009 15:22 | ||||
Нового-то ничего, но мелкие доработки, в виде поддержки кириллицы и т.д делают разработку игры более удобной.
А те шейдеры, что в нынешней версии, что они из себя представляют или они явл. аналогами blur'а в плане построения, то есть реализованы внутренними функциями или как?
Мы все хотим уповать на чудо, но, ведать, пока вы не готовы сделать это чудо, что ж будем ждать... |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 30-10-2009 18:50 | ||||
Все эти шейдеры используют аппаратное ускорение и расширения OpenGL 1.3, но не все являются шейдерами в изначальном понимании этого слова. Некоторые из них (CelShader, BumpShader) основаны на "вшитых" в компонент вершинных и фрагментных программах на ассемблере GPU (реализованы через расширения GL_ARB_Vertex_Program и GL_ARB_Fragment_Program). А, например, MultiMaterialShader не использует программируемый конвейер, и потому работает даже на старых видеокартах. То же самое касается HiddenLineShader и OutlineShader. То есть, если написать на шейдерах какой-нибудь готовый эффект и внедрить его в DLL, то с этим проблем, я думаю, не будет. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 01-11-2009 12:54 | ||||
Интересно, а разве на первых порах нельзя ли ограничится таким же набором шейдеров в версии 2.1?
А вообще, что можете сказать о разработке? Вы сейчас просто думаете или пытаетесь реализовать что-то? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 01-11-2009 16:47 | ||||
Можно, конечно. Теперь, наверно, так и придется сделать.
Я решил несколько месяцев отдохнуть от X3D. Работаю над созданием собственного небольшого движка для С++. Это будет полезно для понимания того, как работает OpenGL. Сейчас как раз дошел до шейдеров - думаю, эти знания мне пригодятся, когда потом снова вернусь к разработке X3D 2.1. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 01-11-2009 17:14 | ||||
Ну что сказать? Успехов Вам, будем ждать новостей |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 10-11-2009 10:15 | ||||
Как и обещал, выкладываю X3D 2.1 в его текущем состоянии (без шейдеров, без блура, без половины остальных функций и с многочисленными багами :) xtreme3d-2.1a-dev.zip Зато прилагаются примеры bump mapping'а, освещения по Фонгу, материала Perlin noise, загрузки MD3, создания ландшафта. Исходники, естественно, included. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 10-11-2009 11:00 | ||||
Чего-то у меня неизвестная ошибка выскакивает во всех примерах, может дело в Win7, но тогда непонятно, ведь старое все работает, правда в более ранней версии 2.1 (там где модель md3 загружается), там вообще другая ошибка. Шрифт создать не может или что-то в этом духе. Вообще блин(( | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 10-11-2009 11:08 | ||||
О багах я предупреждал :) Насчет шрифта - это да, в висте и семерке почему-то ошибку выдает. Я этим вопросом еще не занимался. Лучше пока просто убрать код создания шрифта и текста. Вечером попробую примеры на висте протестить, может, выясню в чем дело. |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 10-11-2009 11:19 | ||||
А, я понял, в чем дело. Надо просто убрать из Create эту строку: MaterialCreate('mFont','data/font.bmp'); Ну, и текст тоже, чтобы на висте заработало: //Create font=WindowsBitmapfontCreate('Arial',10,0,128); text=HUDTextCreate(font,'Xtreme3D'+chr(13)+'FPS: ',global.front); HUDTextSetColor(text,c_white,0.5); ObjectSetPosition(text,16,16,0); //Step HUDTextSetText(text,'Xtreme3D'+chr(13)+'FPS: '+string(framerate)); |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 11-11-2009 10:11 | ||||
Опять этот вирус проклятый! Ну ничего, подожду, пока сайт восстановят, потом перезалью архив. И SysConst.dcu чистый включу прямо в проект, чтобы вирусу кислород перекрыть. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 12-11-2009 10:50 | ||||
Перезалил, ссылка та же. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 13-11-2009 10:29 | ||||
Этот вирус уже порядком достал
Надеюсь больше мы его не увидим. Вот у меня тут мысль появилась, возможно бредовая и бессмысленная, но все же. А нельзя ли написать к нынешней версии библиотеки как бы дополнение в виде библиотеки функции которой можно было использовать в Xtreme 2.0.2.0? Например, написать библиотеку, которая отвечала за создание ZShadow и эти функции попытаться использовать в версии 2.0.2.0... ведь может получится, с фантастической точки зрения Ну или что-нибудь по-проще, например, таким образом добавить поддержку кириллицы в игры. Это только предположения, поэтому и вопрос, а возможно ли? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 13-11-2009 11:19 | ||||
Мне это тоже приходило в голову, и я попробовал. Не срабатывает, unexpected error... Поразмыслив, я нашел этому следующую причину: id объектов из одной dll не действительны для другой. Следовательно, вьювер, созданный из одной dll, не будет рендерить объекты, созданные из другой. Это будут два совершенно разных контекста OpenGL. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 13-11-2009 21:50 | ||||
Ну я так и думал, почти так Кстати, я тут порылся по-лучше в GMI и понял, что там тени очень даже хорошие, не глючат и не едять много ресурсов, честно я бы не отказался от порта нынешнего иррлихта для GM, уж больно хорош он... да простит меня админ за мои слова)) |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 14-11-2009 09:58 | ||||
А что, я не против. GMI тоже отличный движок. Там и физика, и шейдеры, и все дела... И исходник имеется, можно попробовать скомпилировать. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 14-11-2009 11:03 | ||||
Просто мне кажется, что GMI (если сделать его исходя из нынешней версии ирллихта) будет перспективней Xtreme3d и производительней в несколько раз, плюс имеется поддержка DX8, DX9 и OpenGL, шейдеры нового поколения и т.д т.д т.д... Правда я не представляю какая каша получится если прикрутить его к GM, да и получится ли... Что мне очень нравится в GMI - это поддержка GUI, там легко и вьюверы всякие писать и меню проще делается...есть преимущества, хотя и минусы наверное тоже имеются... |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 14-11-2009 11:39 | ||||
Прикрутить-то можно, но для этого как минимум нужно потратить два года на изучение GMI (примерно столько я потратил на X3D), а потом еще полгода на изучение самого Irrlicht (столько у меня ушло на GLScene)... Хотя, может, и меньше времени уйдет (Irrlicht все же более популярен, чем GLScene, и к тому же поддерживается разработчиком). Насчет производительности - не знаю, я серьезные тесты еще не делал, но на глаз особой разницы между ними нет. Во всяком случае, на моей системе. А перспективность - это да. И GUI там действительно отличный (правда, в GLScene есть почти такой же). |
|||||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 14-11-2009 15:34 | ||||
Можно ли сделать, чтобы в будущих версиях Xtreme3D показывались сообщения об ошибках? Слишком часто появляется Unexpected error и непонятно, как это исправить. Например, когда я загружаю модель, которая не может найти какую-то текстуру, возникает эта ошибка, и непонятно, какой текстуры не хватает. Пусть Xtreme3D сообщает, ЧТО он не может найти, и где он это ищет. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 14-11-2009 16:11 | ||||
Попробую, хотя и не обещаю. | |||||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 29-11-2009 11:13 | ||||
Скоро выйдет новая версия X3D? Я про это уже давно ничего не слышал. | |||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 29-11-2009 16:19 | ||||
С этим сейчас проблемы. Выход новой версии отложен на неопределенный срок. Почитай предыдущие посты - станет понятно, почему. | |||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 26-08-2011 22:29 | ||||
Gecko, приветствую вас. Собственно, не появляюсь здесь, только потому, что форум, цитирую "Запрошеный Вами информационный материал признан решением суда как экстремистский. Федеральный список экстремистских материалов - http://www.minjust.ru/ru/activity/nko/fedspisok/." Вот, а через прокси-сайты сидеть не удобно. Я хотел спросить... пытаясь писать свою версию xtreme, я наткнулся на проблему, при построении GLSLShader'ов... я могу вполне загрузить простой шейдер, который будет окрашивать, например, объект, но передать параметры я не могу, так как не знаю, как сделать иначе, чем это делаю через процедуру TForm.GLSLShader1Apply(Shader TGLCustomShader). Вы говорили, что её можно 'вшить', но я не понимаю как, можете помочь чем или если разработки не секретные были, выложить свои наработки по cg шейдерам? P.S Писал порт Irrlicht с Delphi версии. Очень понравилось работать с его архитектурой, жаль, что нормально он в GM не работал, так как окно самого движка делает неактивным окно GM, а как следствие, не все события работают :( Ко всему прочему, писать надо на C++, так как исходники открыты, а это значит не будет двух dll. |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 29-08-2011 18:13 | ||||
Хмм... Нашел в этом списке только ныне несуществующий www.offtop.ru/????????/ (CENSORED BY ADMIN). Наверняка домен offtop.ru тупо блокируется провайдером, советую пожаловаться. Насчет GLSL: процедуру можно встроить в саму DLL, и в ней передавать параметры для шейдера, текст которого тоже встроен в DLL (такой подход у стандартных шейдеров GLScene). Таким образом, теоретически, можно просто насоздавать в движке много встроенных эффектов на все случаи жизни, но тогда теряется основная суть шейдеров - программируемость. Другой выход - вообще запретить uniform-параметры. По своему опыту знаю: можно реализовать очень много разных эффектов и моделей освещения, ограничившись стандартными атрибутами OpenGL (gl_Normal, gl_LightSource, gl_FrontMaterial и и т.д.) Единственное, для чего реально нужны параметры - это текстуры. Но их как раз-таки можно передавать во встроенной процедуре - я лично так и делаю. Можно, скажем, ограничиться восемью текстурными слоями, и просто передавать их во все фрагментные шейдеры как gl_Texture0, gl_Texture1, gl_Texture2 и т.д. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 05-09-2011 21:13 | ||||
Да, наверное так и сделаем.
Да, я глядел как реализовано, например, размытие в GLSLPostBlurShader, но пока не брался за разбор и переделку, а занялся более простыми вещами, которые решить куда важнее. Но потом вернусь к шейдерам естественно.
Посмотрим, что можно сделать будет, но пока мне нужно изучить получше систему шейдеров и их взаимодействие с различными компонентами. Много нюансов, в которых просто плаваешь из-за отсутствия необходимой информации, приходится много времени ковыряться в исх. коде и лазать в инете.
Хорошая идея, спасибо. Возьму на заметку P.S А можете вспомнить, с какими неразрешимыми проблемами вы столкнулись, при написании Xtreme? Хотелось бы узнать на будущее. И кстати, какими проектами сейчас заняты или чем интересным? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 05-09-2011 22:32 | ||||
В основном, с проблемами при реализации тех или иных возможностей GLScene в виде интерфейса, понятного для GM. Исходников оригинального Xtreme нет, и как Xception реализовал, например, тот же блюр (равно как и множество других специфических вещей: ODE, DCE и т.д.), для меня оставалось загадкой. Сказалось отсутствие опыта работы с Delphi.
Понемногу пишу игровой движок на D. Собираюсь на днях сделать небольшой сайт по теме (fpsmag.zymichost.com/d), выложить свои наработки. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 03-12-2011 23:46 | ||||
Скорее всего, практического применения нижеприведенного кода для вас нет, но, думаю, интересно все же, как реализуется Blur. function BlurCreate: real; stdcall; var GLBlur1: TGLBlur; begin try GLBlur1 := TGLBlur.CreateAsChild(SceneDummycube); //В этой строчке все дело GLBlur1.TargetObject := Scene.Objects; GLBlur1.Width := 256; GLBlur1.Height := 256; GLBlur1.Preset := pBeastView; Result := Integer(GLBlur1); except on E: Exception do begin MessageBox(0, PAnsiChar(E.Message), 'Xtreme3D Error...', MB_OK + MB_ICONWARNING + MB_TASKMODAL); Result := 0; Exit; end; end; end; Я не уверен, что все работает так, как надо. Там еще с контекстом веселье какое-то, но то, что эффект есть - факт. А DCE я как-то писал, там все просто: //Manager function DceManagerCreate: real; stdcall; var DCEManager : TGLDCEManager; begin DCEManager := TGLDCEManager.Create(SceneNode); Result := Integer(DCEManager); end; //Dynamic function DceDynamicSetManager(const obj, man: real): real; stdcall; begin GetOrCreateDCEDynamic(TGLBaseSceneObject(Trunc(obj))).Manager := TGLDCEManager(Trunc(man)); Result := 1; end; Единственное, что в DCE я не реализовал, так это информация о столкновении: получение нормали и т.п А известная проблема с автогравитацией решается установкой значения этой самой гравитации в коде. Все, как всегда, просто Что-то вы затихли совсем, хочется посмотреть на ваши работы какие-нибудь, кроме журнала естественно! |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 04-12-2011 21:07 | ||||
Скоро все выложу, как и обещал. Правда, ничего сенсационного там нет - просто эдакая кодовая база, которая скапливается у любого программиста-любителя. Есть, например, программа-просмотровщик шейдеров на GLSL (использую ее для "обкатки" различных BRDF), прототип графического редактора на основе узлов-фильтров, игровой движок на ранней стадии разработки и еще разные мелочи. Еще у меня была попытка написать ядро ОС на D - правда, пока только на уровне "Hello World" |
|||||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 05-12-2011 19:26 | ||||
Что значит была попытка? Получилось? А то я сомневаюсь, что на языке с такой громоздкой библиотекой, от которой нельзя избавиться, можно написать ядро ОС. В этой библиотеке наверняка полно вызовов взаимодействия с ОС. Хотя слышал, что есть ещё Kosmos - операционная система на C#. |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-12-2011 15:51 | ||||
На D можно написать ядро, но не с DMD - придется использовать GDC. Я взял GDC под Linux, скомпилировал объектные файлы в ELF (разумеется, без обращений к рантайму и Phobos), написал загрузочный код на ассемблере и слинковал при помощи LD. Все получилось, мое "ядро" запускается и работает на эмуляторе (VirtualBox). Правда, оно пока умеет только выводить текст на экран. В принципе, все то же самое можно сделать на обычном C - на который D и становится похож, если не использовать рантайм. Но ведь ничто не мешает постепенно написать свой рантайм, без системных вызовов. А там, глядишь, и Phobos можно адаптировать. Кстати, по системному программированию есть отличный ресурс wiki.osdev.org. Собственно, там как раз есть статья по написанию ядра на D. |
|||||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 06-12-2011 16:41 | ||||
Кстати, по поводу GCC мне не ответили на вопрос из этой темы: http://offtop.ru/xtreme3d/view.php?part=16&t=678301. Он выдаёт Hello, World'ы по мегабайту и тестовая программа ещё медленнее, чем в DMD. Может, там всё-таки как-нибудь оптимизацию можно включить? А то не верится, что такой распространённый компилятор такой плохой. Интересно, как под него рантайм написать. Это наверное посложнее, чем для C++, потому что куча функциональности в языке отваливается и он не так распространён. Хотя и для C++ я так и не смог написать полноценный рантайм. Не смог сделать поддержку исключений и чисел с плавающей запятой. Исключений нет ни в одном исходнике CRT. Вторую проблему я бы решил, если бы из-за первой не передумал писать свою CRT.
Встраиваемом или отдельном?
А без эмулятора запускал? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-12-2011 18:40 | ||||
Судя по этому треду на stackoverflow.com, под Windows это вроде бы считается нормальным. MinGW статически линкует с программой стандартную библиотеку C++, поскольку по умолчанию не использует майкрософтовский рантайм. Под Linux нет такой проблемы, там libstdc++ - динамический. Но я особо не вникал в проблему, на C++ давно уже не пишу.
На отдельном. NASM.
Нет, но должно работать: ядро пока предельно простое, в нем даже нет поддержки IRQ. |
|||||
gammaker бывалый Группа: Участники Сообщений: 49 |
Добавлено: 06-12-2011 21:43 | ||||
Он линкует только C-Runtime или ещё и STL? STL ведь вся inline и на шаблонах, в ней нечего линковать. В Visual C++ CRT можно тоже статически линковать, и там исполняемые файлы во много раз меньше. Если вдруг у меня будет куча свободного времени, я протестирую GCC на производительность (ведь GDC основан на нём?) и, если она меня устроит, буду переписывать рантайм языка D. Стандартная библиотека мне не нужна, свою напишу, у меня уже есть опыт этого в C++. Я не использую STL. Написал свой класс строки, очень быстрый - быстрее, чем в STL. И возможностей у него побольше. Ещё написал свой класс массивов. Они поддерживают добавление в начало с той же скоростью, что и в конец. В свои классы я перенёс некоторые фишки языка D. Самая интересная - это оператор $: String file="image.jpg"; String ext=file($-4, $); ext=".jpg" причём нет никакого копирования и выделения памяти, так как используется счётчик ссылок То же самое работает и с массивами. D мне не подошёл по размерам exe и производительности, поэтому буду ностальгировать по нему на C++. А что такое IRQ? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 06-12-2011 23:09 | ||||
Я думаю, это проблема реализации библиотеки, а не компилятора/линкера - вызов одной функциии тянет за собой слишком много внутренних связей и зависимостей, и их в результате накапливается на несколько сот килобайт... IRQ (Interrupt Request) - это прерывание, специальный сигнал процессору от оборудования, сообщающий о каком-либо событии. Например, о нажатии клавиши. Ядро должно на него реагировать - приостановить (прервать) текущий код и должным образом обработать сигнал. |
|||||
Hacker Ответственный за CHM Группа: Модераторы Сообщений: 346 |
Добавлено: 12-12-2011 19:53 | ||||
Что-то вы уже далеко от темы ушли, господа... Хочется посмотреть работы, в особенности заинтересовал просмотрщик шейдеров на GLSL. И все-таки, есть какой-то проект, реализация которого задумана дойти до финала? Пробовали ли вы, Gecko, работает ли Blur или этот этап уже пройден давно? |
|||||
Gecko Big Boss Группа: Администраторы Сообщений: 719 |
Добавлено: 14-12-2011 20:31 | ||||
У меня сейчас нет установленного Delphi, поэтому не могу попробовать. А ставить только ради этого - как-то не хочется. |