forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   Reality Engine Beta SDK 0.2a+ (http://forum.boolean.name/showthread.php?t=8237)

ABTOMAT 09.07.2009 15:55

Ответ: Reality Engine Beta SDK 0.2a+
 
Баг находится в шейдере PSSM (неверная выборка из текстуры)

Knightmare 09.07.2009 16:08

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от ABTOMAT (Сообщение 110475)
Баг находится в шейдере PSSM (неверная выборка из текстуры)

Нет. Судя по всему сбита выборка не только с g-буфера.
Цитата:

я правда так и не понял почему в d3d по-пиксельное совпадение так сложно сделать
в opengl просто рисуешь квад и не надо никуда смещатся или я ошибаюсь ?
Все зависит от того как сделан квад (в некоторых случаях сдвиг необходим, в некоторых нет).

Genius 10.07.2009 01:12

Ответ: Reality Engine Beta SDK 0.2a+
 
Вложений: 2
Вроде убрал искажения... Спасибо кнайту.

Так,сделал AntiAlias - 4x,полную потдержку архивов(zip),ssao маленько переделал.

Genius 10.07.2009 05:20

Ответ: Reality Engine Beta SDK 0.2a+
 
Вложений: 2
Сделал ландшафты,держат 4 лода,дистанции для лодов настраиваемые,стыков нету).

Genius 10.07.2009 09:44

Ответ: Reality Engine Beta SDK 0.2a+
 
Вложений: 2
Reality-Engine 3.0 :-D
Всю ночь потратил на него :)
Тиррейны с использованием бленд карты,4 лауера,+нормал мыпы.

Genius 05.09.2009 15:00

Ответ: Reality Engine Beta SDK 0.2a+
 
Привет всем!
Я венулсо,но правдо времени почти нету последнее время,катастрафически нету...



И так значит,перешол я на OpenGL,пишу новый двиг,результаты уже есть,и не плохие я бы сказал,написал експортёры таки нормальные для 3dsmax,експортёр статики и skinned мешей,etc. Сделал более менее нормальную систему матереалов,дороботал файловую систему(zip\rar).

Новый предназначен исключительно для использования с С++,так как всё почти сделано как в Source Engine\Quake3\4. Тоесть не пишем программу а пишем дллку с игровым интерфейсом,имеется лаунчер который запускаем с ключём "-game MyGame". Так же в движке преобладает система BSP( Секторы,Порталы ),ещё есть система локализирования для UI,FreeType шрифты,потдержка юникоде,свой формат текстур(ессесно ещё и dds,jpg,png),поддержка игрового сплеш скрина - ну как в Unreal Engine 3.
Небольшой пример материала:

Код:

//  NivaGlass Brun FX Material
<Color>
 0.588235 0.588235 0.588235

<Ambient>
 0.588235 0.588235 0.588235

<Specular>
 0.900000 0.900000 0.900000

<Transparency>
 0.340000

<Blend>
 ONE SRC_ALPHA

<Collision>
 true

<Shader>
 mesh_bump.shader

<Texture0>
 veh_nivaglass1.dds

<Texture1>
 veh_nivaglass1_normal.dds

Демка: Ccылка http://ifolder.ru/13859773

Новый движок обзываю BurnFX.

NitE 05.09.2009 15:04

Ответ: Reality Engine Beta SDK 0.2a+
 
*поддержка
*материалов
название BurnFX уже занято

скрин прикольный

Genius 05.09.2009 15:13

Ответ: Reality Engine Beta SDK 0.2a+
 
Ссылка:http://ifolder.ru/13859773

Genius 06.09.2009 06:01

Ответ: Reality Engine Beta SDK 0.2a+
 
Делаю Radiosity,пока чисто от surface источников света.


Genius 06.09.2009 08:07

Ответ: Reality Engine Beta SDK 0.2a+
 
Вот подобие корнелл бокса сделал:

Genius 07.09.2009 00:46

Ответ: Reality Engine Beta SDK 0.2a+
 
Ещё Radiosity:

Taugeshtu 07.09.2009 11:39

Ответ: Reality Engine Beta SDK 0.2a+
 
На последнем скрине светящиеся углы выглядят как хз что - будто потолок висит между стен на расстоянии 3-5 см.

И, да! Ты все-таки сделал это - теперь картинка не выглядит словно вытащенная из *опы!

Genius 07.09.2009 13:24

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от Ize'g0re (Сообщение 117798)
На последнем скрине светящиеся углы выглядят как хз что - будто потолок висит между стен на расстоянии 3-5 см.

И, да! Ты все-таки сделал это - теперь картинка не выглядит словно вытащенная из *опы!

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

ARA 10.09.2009 06:09

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от Genius (Сообщение 117717)
Делаю Radiosity,пока чисто от surface источников света.


Это GI? Недурно :)

Genius 10.09.2009 18:47

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от ARENSHI (Сообщение 118139)
Это GI? Недурно :)

Вообще это можно назвать и GI,так как это не совсем Radiosity...

Я щас делать расчёт лайтмап для bsp,с ними GI будет красивее и расчёт быстрее так как не надо будет расчитывать на высокополигональныйх моделях.


Dream 11.09.2009 05:08

Ответ: Reality Engine Beta SDK 0.2a+
 
это аффект на последнем скрине?:)) честно говоря больше похоже на модель без текстуры покрашенную в цвет детской неожиданности

ABTOMAT 11.09.2009 11:54

Ответ: Reality Engine Beta SDK 0.2a+
 
Типа Occlusion

Genius 14.09.2009 03:33

Ответ: Reality Engine Beta SDK 0.2a+
 
Радиосити через лайтмепы в процессе,уже работает но есть заметные артефакты...


ARA 14.09.2009 18:26

Ответ: Reality Engine Beta SDK 0.2a+
 
Выкладывал бы ты готовый результат, ибо только детей этим пугать :)

Genius 15.09.2009 11:05

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от ARENSHI (Сообщение 118517)
Выкладывал бы ты готовый результат, ибо только детей этим пугать :)

Ну я как бы виду микро блог разработки,так что... ;)

Dream 15.09.2009 17:39

Ответ: Reality Engine Beta SDK 0.2a+
 
2Genius
Ты растёшь :) по сдержаннее стал:)
рад за тебя) значит опыта поднабрался:)

Genius 16.09.2009 08:33

Ответ: Reality Engine Beta SDK 0.2a+
 
Запарился я уже с этими лайтмапами )),но всётаки сделал паковку всех маленьких лайтмап в одну большую...

Были траблы с получением новых UV,сделал такие вот функции:

Код:


float MapPack::getU(float u, int index){
        TextureRectangle* rect =  packer->getRectangle(index);
        float scale = float(rect->width) / float(image->width);
        float d = float(rect->x) / float(image->width);
        float new_u = (u * scale) + d;
        return new_u;
}

float MapPack::getV(float v, int index){
        TextureRectangle* rect =  packer->getRectangle(index);
        float scale = float(rect->height) / float(image->height);
        float d = float(rect->y) / float(image->height);
        float new_v = (v * scale) + d;
        return new_v;
}

Славо богу всё заработало :)

Всё radiosity вроде тоже работает,чтобы им пользоватся компилим BSP с помощью функции SceneManager'а

Код:

scene->compileMap("room.mesh","maps/room.bsp");
после создаём лайтмапы:
Код:

scene->getBspUtil()->calculateLightMaps();
и уже потом можеш приступать к расчёту радиосити:
Код:

scene->getBspUtil()->calculateRadiosity(10,0);
первый параметр в функции - кол-во итераций,чем больше тем соотвецтвено качественей получится картинка,второй параметр - Quality качество, 0 - LOW(16x16),1 - HIGH(64x64),2 - VERY HIGH(128x128).

Radiosity(15 итераций,качество 2):

Genius 23.09.2009 04:38

Ответ: Reality Engine Beta SDK 0.2a+
 
Вложений: 1
Щас делаю Ambient Occlusion,с помощью рей трейсинга,готово Radiosity + RayTrace Shadows ,скрин:

FDsagizi 23.09.2009 16:35

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от Genius (Сообщение 119505)
Щас делаю Ambient Occlusion,с помощью рей трейсинга,готово Radiosity + RayTrace Shadows ,скрин:

Вот это заслуживает уважения!
ИбО - проблема в том что моделеров то толком нету у небольших команд а домики состряпаные программистами выгледят ну очень игрушечно, а самому делать лайт мапы ну ламы-ламы, либо это не удобно, либо это не умеют :-)

БРАВО, даешь уровень аля GearsOfWor :-) !

Genius 24.09.2009 09:08

Цитата:

Сообщение от FDsagizi (Сообщение 119529)
Вот это заслуживает уважения!
ИбО - проблема в том что моделеров то толком нету у небольших команд а домики состряпаные программистами выгледят ну очень игрушечно, а самому делать лайт мапы ну ламы-ламы, либо это не удобно, либо это не умеют :-)

БРАВО, даешь уровень аля GearsOfWor :-) !

:-D Ога,но я впринцепе умею работать в 3dsmax и лайтмапы там делать,но своё всегда ближе.

З.Ы Не GearsOfWor а Gears Of War =)

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


ЗЫ небольшой скрин с двумя Omini источниками( лайтмеп с NEAREST фильтрацией ).

ARA 24.09.2009 12:26

Ответ: Reality Engine Beta SDK 0.2a+
 
1) Сколько времени считается такая сценка?
2) Откуда там краснота? Красный светильник?

Dream 24.09.2009 13:07

Ответ: Reality Engine Beta SDK 0.2a+
 
а почему не спросил откуда там зеленота ?:))

Tadeus 24.09.2009 13:10

Ответ: Reality Engine Beta SDK 0.2a+
 
Сферический анаглиф в вакууме?

Genius 24.09.2009 15:03

Цитата:

Сообщение от ARENSHI (Сообщение 119604)
1) Сколько времени считается такая сценка?
2) Откуда там краснота? Красный светильник?

1) Секунд 15,мож меньше это приблезитель.
2) Один красный и один белый источники.

Цитата:

Сообщение от DimasSup (Сообщение 119609)
а почему не спросил откуда там зеленота ?:))

Это Цвет кремовый у самой сцены + тень чёрная - получается немножко зеленоватый оттенок тени,всё правельно.

Dream 24.09.2009 20:07

Ответ: Reality Engine Beta SDK 0.2a+
 
да нет, я не спрашиваю, я то понял:) просто Илья вопрос такой задал:)

Genius 25.09.2009 07:24

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от DimasSup (Сообщение 119657)
да нет, я не спрашиваю, я то понял:) просто Илья вопрос такой задал:)

А ну знач я не так понял =)

Genius 25.09.2009 20:04

Ответ: Reality Engine Beta SDK 0.2a+
 
Псевдо город =),один проход рей трейсингом и один проход radiosity. 2 минуты на всё.


Mr_F_ 25.09.2009 20:30

Ответ: Reality Engine Beta SDK 0.2a+
 
что такой медленный хост
юзай радикал.ру
не поймёшь то ли радиосити такой странный то ли всё так переблумено что ничего не понятно
разрешение лмапов огорчительное
2 минуты - много на такое

Genius 26.09.2009 12:27

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от Mr_F_ (Сообщение 119748)
что такой медленный хост
юзай радикал.ру
не поймёшь то ли радиосити такой странный то ли всё так переблумено что ничего не понятно
разрешение лмапов огорчительное
2 минуты - много на такое

Cогласин что 2 минуты много,щас тогда буду прикручивать Photon Mapping и Kd-Tree...
Расчёт токой долгий только потомучто у меня нету оптимизаций рейтрейсинга...

Genius 28.09.2009 04:56

Ответ: Reality Engine Beta SDK 0.2a+
 
Прокачал скилы в photon mapping'e =)!



Добавил в класс BspUtil функцию rayTrace()

у которой два параметра void rayTrace( int photonCount , float radius );

Первый - колво фотонов(учитывая кол-во источников в сцене) в итоге на каждый источник будет заюзано photonCount / num lights фотонов,есесно чем больше тем лучше.
Второй - радиус принятия точкой фотонов. имется виду на каком радиусе точка сможет приниматт фотоны все фотоны за радиусом точка не примит.

Оказывается это увлекательное дело,изучение глобального освещения =),так что я не остановлюсь на достигнутом и наверно ещё попробую сделать парвельный ambient occlusion...
Если не хочется юзать фотон меппинг то можно кол-во фотонов установить в -1 и тогда будет просчитано простое дефьюзное освещение!
Так же осталась и функции для просчёта радиосить,так что имеем уже 3 метода расчёта освещения.

Genius 28.09.2009 19:09

Ответ: Reality Engine Beta SDK 0.2a+
 
Сделал Ambient Occlusion.

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


ARA 28.09.2009 19:20

Ответ: Reality Engine Beta SDK 0.2a+
 
Щёлкни на превьюшку
Цитата:

An unhandled ErrorException was thrown. Please contact an administrator if this problem persists.

Genius 28.09.2009 19:24

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от ARENSHI (Сообщение 120004)
Щёлкни на превьюшку

imagehost.org бажит,щас перезалью.

Genius 28.09.2009 19:26

Ответ: Reality Engine Beta SDK 0.2a+
 
Вот:


Upd: опять,посаветуйте хороший имейдж хостинг!

Upd:Нашол:

ABTOMAT 28.09.2009 19:36

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Upd: опять,посаветуйте хороший имейдж хостинг!
Саветуем: http://imageshack.us

Android 28.09.2009 20:36

Ответ: Reality Engine Beta SDK 0.2a+
 
Не надо imageshack. Он жутко долго грузится.
Radikal.ru
;)

johnk 28.09.2009 21:44

Ответ: Reality Engine Beta SDK 0.2a+
 
Советую picamatic.com :-)

IGR 28.09.2009 21:52

Ответ: Reality Engine Beta SDK 0.2a+
 
Советую атачить на форум !!

Genius 03.10.2009 00:10

Ответ: Reality Engine Beta SDK 0.2a+
 
У кого нибуть совершено случайно не завалялась какаянибуть архитектурная моделька типа Sponza Atrium нормально затекстуреня и т.д и т.п? Хочу протестить на хорошей модельке свой новый рейтрейсер =)

Igor' 15.10.2009 01:39

Ответ: Reality Engine Beta SDK 0.2a+
 
Офигеть,забыл пасс от своего акк,решил востановить а оказалось что я регал его на старую эл.почту,пришлось перерегатся =).

Вобщем Ambient Occlusion:

moka 15.10.2009 03:06

Ответ: Reality Engine Beta SDK 0.2a+
 
На ютубе видел видяшку отличного АО, с этой же моделькой, не от туда ли АО?

Igor' 15.10.2009 03:11

Ответ: Reality Engine Beta SDK 0.2a+
 
Цитата:

Сообщение от MoKa (Сообщение 121635)
На ютубе видел видяшку отличного АО, с этой же моделькой, не от туда ли АО?

Ога тоже видел,и демку смотрел,моделька от туда.

Только там AO в риалтайме смотрится стрёмна из за аккамуляции.

Я щас делаю оффлайн рейтрейсер ну типа MentalRay,Sunflow,etc.
Для редактора моделек и карт,с помощью него можно будет рендерить модельки со всякими плюшками типа Direct\Indirect Illumination,AO,PhotonMapping.

Хидер в движке так выглядит:

Код:

/*=============================================================================
        Copyright 2009 Novartis-Games Team. All Rights Reserved.

        Revision history:
                * Created by Ustinov I.G.
=============================================================================*/


#pragma once

namespace BurnFX
{

struct RayTraceDesc
{
        // Photon Mapping
        int photonCount;
        int photonEnergy;

        // Ambien Occlusion
        vec3 darkness;
        int samples;

        // Sky
        vec3 sky_color;

        // Direct\Indirect Illumination
        bool indirectIllumination;
        bool directIllumination;

    // Output image
        String filename;

        void empty(){

                photonCount = 0;
                photonEnergy = 0;
                darkness = vec3(0,0,0);
                samples = 0;
                sky_color = vec3(0,0,0);
                directIllumination = false;
                indirectIllumination = false;
        }

        void default(){

                photonCount = 0;
                photonEnergy = 0;
                darkness = vec3(0,0,0);
                samples = 8;
                sky_color = vec3(0.1,0.1,0.7);
                directIllumination = true;
                indirectIllumination = false;
        }

};

class IRayTracer
{
public:

        virtual void trace( const RayTraceDesc& desc ) = 0;
};

}

Юзается так:
Код:

                if(engine->isKeyPressed(IEngine::KEY_F6)){

                        engine->flushKey(IEngine::KEY_F6);

                        RayTraceDesc desc;
                        desc.default();
                        desc.filename = "raytrace.jpg";
                        engine->getRayTracer()->trace(desc);
                }



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

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