forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты C++ (http://forum.boolean.name/forumdisplay.php?f=56)
-   -   [TrueHorror] - разработка (http://forum.boolean.name/showthread.php?t=17293)

mr.DIMAS 21.09.2012 19:16

[TrueHorror] - разработка
 
Вложений: 1
Привет пекари! В общем замахнулись мы с одногруппником на хоррор. Это будет наш второй совместный проект ( именно проект ( не проЭкт ( я серьёзно ))). В этой теме я буду вести блог разработки. Выкладываться будет все - начиная от моделек ( в .max ) и до исходников. Графоном игру обеспечиваю я ( модели, текстуры и т.п ). Код тоже я пишу. Ванёк собирает звуки и прорабатывает сюжет. Кстати о сюжете:


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

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

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

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

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


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

Как уже можно догадаться: играем мы за маленькую девочку которая попала в "лапы" психопату( его можно увидеть в папке ripper ). Цель проста: выжить и сбежать. По пути будут встречаться всевозможные хитроумные ловушки.

Атмосферу обеспечивает мой звуковой двиг( project F ). Графон и физику предоставляет Xors3D ( авторам дам деньгу когда проект подойдет к релизу( ведь игра планируется на продажу ) ).

В движке есть триггерная система. Триггеры выполняют различные действия( увидите когда к двери подойдете ). Редактор уровней и триггеров - 3ds max.

управление wsad .shift - бег

вобщем скачайте и поглядите. надеюсь что проект заинтересует и булка будет следить за разработкой. название понятное дело не окончательное))) всем пока! [ в архиве маленький кусок первой главы ]

ACHTUNG
Новые версии глядите в моих постах

эта безнадежно устарела

Mr_F_ 21.09.2012 20:06

Ответ: [TrueHorror] - разработка
 

Цитата:

Кстати о сюжете
испортил мне день


pax 21.09.2012 23:07

Ответ: [TrueHorror] - разработка
 
Запустил, лого ксорса, потом черный экран, на WSAD слышны шаги. Чуть походил в темноте и выключил. Это баг или что?

Samodelkin 21.09.2012 23:30

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от pax (Сообщение 238829)
Запустил, лого ксорса, потом черный экран, на WSAD слышны шаги. Чуть походил в темноте и выключил. Это баг или что?

У меня тоже самое. Еще курсор мыши виден и таймер.

RBK 22.09.2012 00:22

Ответ: [TrueHorror] - разработка
 
Звук и движения очень замедленны(может специально чтобы оценить эхо), триггер у двери работает.

И еще, на мой взгляд тени лучше сделать текстурой(в максе), будет лучше и ресурсы малость освободятся.

mr.DIMAS 22.09.2012 10:09

Ответ: [TrueHorror] - разработка
 
сразу вопрос: шейдеры какой версии используются в стандартных тенях ксорса? может из-за отсутствия нужной версии не работает?

тени нужны именно динамические( иначе как - ведь есть и динамические объекты ).

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

FREE MAN 22.09.2012 10:31

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 238836)
сразу вопрос: шейдеры какой версии используются в стандартных тенях ксорса? может из-за отсутствия нужной версии не работает?

тени нужны именно динамические( иначе как - ведь есть и динамические объекты ).

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

Тени используют шейдеры 2.0 версии. Да в ксорсе коряво сделано смешивание теней, и не только тени сделаны коряво...

mr.DIMAS 22.09.2012 10:37

Ответ: [TrueHorror] - разработка
 
Цитата:

и не только тени сделаны коряво...
какие еще косяки меня поджидают?

FREE MAN 22.09.2012 10:56

Ответ: [TrueHorror] - разработка
 
Смотря, что ты будешь делать от этого все зависит. По крайней мере 750 ревизия пашет стабильно, так что сильно не парся.
Где то на официальном сайте валяется шейдер стандартных теней, если что их можно будет поковырять и что то исправить.

mr.DIMAS 22.09.2012 15:12

Ответ: [TrueHorror] - разработка
 
хм. нашел в стандартных шейдерах Shadows.fx

там нашел

Код:

// Pixel shader for shadows mixing
float4 PSMixShadows(float2 TexCoords : TEXCOORD0) : COLOR
{
    float4 src  = tex2D(samplerSrcShadow, TexCoords);
    float4 dest = tex2D(samplerResultShadow, TexCoords);
    return dest * src;
}

вроде этот кусок отвечает за смешивание ( кэп ). тут копать?

FREE MAN 22.09.2012 15:35

Ответ: [TrueHorror] - разработка
 
Да, надо будет еще что то еще покывырять в шейдере. сам толком не разбирался в этом шейдере, что там и как устроено.

Gector 22.09.2012 15:42

Ответ: [TrueHorror] - разработка
 
Сюжет жесткий. Что это за события такие?
Тоторо)))

Samodelkin 22.09.2012 16:05

Ответ: [TrueHorror] - разработка
 
mr.DIMAS, мне кажется дело в рендер-таргетах, которые используются для теней. Я сегодня тестировал на другой видеокарте с разрешением 1920х1080 - и там было видно что тени рисуются не по всей плоскости экрана. Это может быть например потому что разрешение рендер-таргета задано фиксировано и оно меньше чем разрешение экрана. В случае если разрешение экрана меньше чем рендер-таргета то он может вообще не создаваться и мы видим просто черный экран как в предыдущих тестах. Вроде как в d3d9 рендер-таргеты управляются через GAPI, так что наверное смотреть нужно в кодах программы, а не шейдеров и эффектов.



mr.DIMAS 22.09.2012 17:27

Ответ: [TrueHorror] - разработка
 
дадада. я это уже понял, забыл xCreateDSS вызвать c текущим разрешением, вот блин. про графон: тени будут запеченные в максе, а освещение будет попиксельным( может добавлю бамп ) максимум 16 источников( 2 прохода по 8 в каждом ). тип освещения будет точечным, и конусным( spot light )( для фонарика ).

upd. освещение запилил

radiobutton 22.09.2012 17:29

Ответ: [TrueHorror] - разработка
 
OpenAL32.dll не найдена.

mr.DIMAS 22.09.2012 17:34

Ответ: [TrueHorror] - разработка
 
http://connect.creativelabs.com/open.../AllItems.aspx

третий сверху

mr.DIMAS 22.09.2012 23:01

Ответ: [TrueHorror] - разработка
 
появился вопрос по шейдерам: есть два типа источников
1) направленный с конусом ( spot )
2) точечный
как их отрисовывать вместе? первым проходом отрисовать точечные, вторым направленные?

код шейдера отвечающего за освещение
Код:

float4x4 mWorldViewProj : MATRIX_WORLDVIEWPROJ;
float4x4 mWorld : MATRIX_WORLD;

#define MAX_LIGHTS 10

float3 lightPos[ MAX_LIGHTS ];
float3 litColor[ MAX_LIGHTS ];
float litDistFactor[ MAX_LIGHTS ];
int litEnabled[ MAX_LIGHTS ];

texture diffuseTexture : TEXTURE_0;

sampler diffuseSampler = sampler_state
{
    Texture = <diffuseTexture>;
    AddressU = WRAP;
    AddressV = WRAP;
    AddressW = WRAP;
    MinFilter = ANISOTROPIC;
    MagFilter = ANISOTROPIC;
    MipFilter = ANISOTROPIC;
    MaxAnisotropy = 4;
};

struct VSInput
{
    float4 pos : POSITION;
    float3 normal : NORMAL;
    float2 texCoord0 : TEXCOORD0;
};

struct VSOutput
{
    float4 pos : POSITION;
    float3 normal : TEXCOORD0;
    float2 texCoord0 : TEXCOORD1;   
    float4 pos2 : TEXCOORD2;
};

struct PSInput
{
    float3 normal : TEXCOORD0;
    float2 texCoord0 : TEXCOORD1;
    float4 pos : TEXCOORD2;
};

VSOutput vertexShaderMain( VSInput input )
{
    VSOutput output;

    output.pos            = mul( input.pos, mWorldViewProj );
    output.pos2            = mul( input.pos, mWorld );
    output.normal        = normalize( mul( input.normal, mWorld ));
    output.texCoord0    = input.texCoord0;

    return output;
};

float4 pixelShaderPass1( PSInput input ) : COLOR0
{
    float3 result      = 0;
    float4 texelColor = tex2D( diffuseSampler, input.texCoord0 );

    for( int i = 0; i < MAX_LIGHTS / 2; i++ )
    {
        if( litEnabled[ i ] )
        {
            float orientationFactor    = saturate( dot( input.normal, lightPos[ i ].xyz - input.pos )) * 0.77;
            float distanceFactor    = distance( lightPos[ i ].xyz, input.pos ) * litDistFactor[ i ];

            float brightness = orientationFactor / ( distanceFactor );

            result += brightness * litColor[ i ] ;
        };
    };

    return texelColor * clamp( float4( result, 1 ), 0.1, 1 );
};

float4 pixelShaderPass2( PSInput input ) : COLOR0
{
    float3 result      = 0;
    float4 texelColor = tex2D( diffuseSampler, input.texCoord0 );

    for( int i = MAX_LIGHTS / 2; i < MAX_LIGHTS; i++ )
    {
        if( litEnabled[ i ] )
        {
            float orientationFactor    = saturate( dot( input.normal, lightPos[ i ].xyz - input.pos )) * 0.77;
            float distanceFactor    = distance( lightPos[ i ].xyz, input.pos ) * litDistFactor[ i ];

            float brightness = orientationFactor / ( distanceFactor );

            result += brightness * litColor[ i ] ;
        };
    };

    return texelColor * clamp( float4( result, 1 ), 0.1, 1 );
};

technique Main
{
    pass p0
    {
        AlphaBlendEnable = false;
        VertexShader = compile vs_2_0 vertexShaderMain();
        PixelShader = compile ps_2_0 pixelShaderPass1();
    }
   
    pass p1
    {
        AlphaBlendEnable = TRUE;
        DestBlend = ONE;
        SrcBlend = ONE;
        VertexShader = compile vs_2_0 vertexShaderMain();
        PixelShader = compile ps_2_0 pixelShaderPass2();
    }
}


pax 23.09.2012 15:01

Ответ: [TrueHorror] - разработка
 
так что на счет черного экрана?

mr.DIMAS 23.09.2012 20:21

Ответ: [TrueHorror] - разработка
 
убрал нафиг тени, и запилил обычное точечное освещение без теней - в ущерб "графону".

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

брать предмет - [ E ]. брость - ЛКМ

заменил текстуры.

сорсы в комплекте

шейдер рисует 6 источников света за проход. свет простейший.

баги сообщаем.

аттачи глючат.

вот
http://tempfile.ru/file/2535190

Устарело

mr.DIMAS 24.09.2012 00:04

Ответ: [TrueHorror] - разработка
 
Вложений: 4
добавил эффект затуманивания рассудка от темноты( как в амнезии почти что )

выложу скриншоты:

Wegox 24.09.2012 00:52

Ответ: [TrueHorror] - разработка
 
Тележки странно вибрируют если их в руки взять, это и правда страшно!
будто в них демоны. И да, если их кидать то они не переворачиваются.:4to:
Красного эффекта не ведал.

mr.DIMAS 24.09.2012 01:13

Ответ: [TrueHorror] - разработка
 
Цитата:

Красного эффекта не ведал.
если посмотреть на время постов - все станет ясно.

добавил музыку - круто что есть FMA.

добавил эффект при беге - увидите

шейдер освещения( в архиве ) поглядите - такой подход вообще катит?

http://tempfile.ru/file/2535239

Устарело

Wegox 24.09.2012 01:22

Ответ: [TrueHorror] - разработка
 
Аааа, это ты как бы в реальном времени проект делаешь что-ли, Я думал ты просто скриншоты выложил.

mr.DIMAS 24.09.2012 01:23

Ответ: [TrueHorror] - разработка
 
Цитата:

Аааа, это ты как бы в реальном времени проект делаешь что-ли, Я думал ты просто скриншоты выложил.
когда время позволяет, сегодня только 4 часа потратил на то чтобы вспомнить как кодить на HLSL :-D

mr.DIMAS 24.09.2012 01:27

Ответ: [TrueHorror] - разработка
 
помимо "красного эффекта" - присутствует еще и "колыхание" сцены

Wegox 24.09.2012 01:31

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 239010)
помимо "красного эффекта" - присутствует еще и "колыхание" сцены

Чё за "колыхание сцены"
Телеги сквозь решётки проходят.

mr.DIMAS 24.09.2012 01:36

Ответ: [TrueHorror] - разработка
 
оу щит. ты минуты две в тени( можно где коробки ) постой и погляди потом на стену.

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

Wegox 24.09.2012 01:42

Ответ: [TrueHorror] - разработка
 
Во теперь все эффекты увидал и услыхал, а так мимо коробок пробегал и вниз:-D

mr.DIMAS 24.09.2012 01:46

Ответ: [TrueHorror] - разработка
 
вопрос к труЪ кодерам:
возможно ли вторым проходом добавить бамп?

mr.DIMAS 24.09.2012 18:16

Ответ: [TrueHorror] - разработка
 
хм. ответов на булке ждать не приходится, поэтому сам запилил

вот он бамп моей мечты:

Код:

float4x4 mWorldViewProj : MATRIX_WORLDVIEWPROJ;
float4x4 mWorld            : MATRIX_WORLD;
float3  cameraPosition : CAMERA_POSITION;

float3 lit1Pos : LIGHT0_POSITION;
float3 lit1Color : LIGHT0_COLOR;
float  lit1Range : LIGHT0_RANGE;

float3 lit2Pos : LIGHT1_POSITION;
float3 lit2Color : LIGHT1_COLOR;
float  lit2Range : LIGHT1_RANGE;

float3 lit3Pos : LIGHT2_POSITION;
float3 lit3Color : LIGHT2_COLOR;
float  lit3Range : LIGHT2_RANGE;

float3 lit4Pos : LIGHT3_POSITION;
float3 lit4Color : LIGHT3_COLOR;
float  lit4Range : LIGHT3_RANGE;

float3 lit5Pos : LIGHT4_POSITION;
float3 lit5Color : LIGHT4_COLOR;
float  lit5Range : LIGHT4_RANGE;

float3 lit6Pos : LIGHT5_POSITION;
float3 lit6Color : LIGHT5_COLOR;
float  lit6Range : LIGHT5_RANGE;

const texture diffuseTexture  : TEXTURE_0;
const texture normalTexture  : TEXTURE_1;

sampler diffuseSampler = sampler_state
{
    Texture            = <diffuseTexture>;
    AddressU        = WRAP;
    AddressV        = WRAP;
    AddressW        = WRAP;
    MinFilter        = LINEAR;
    MagFilter        = LINEAR;
    MipFilter        = LINEAR;
};

sampler normalSampler = sampler_state
{
    Texture            = <normalTexture>;
    AddressU        = WRAP;
    AddressV        = WRAP;
    AddressW        = WRAP;
    MinFilter        = LINEAR;
    MagFilter        = LINEAR;
    MipFilter        = LINEAR;
};

struct VSInputBump
{
    float4 pos            : POSITION;
    float2 diffuseCoord    : TEXCOORD0;
    float2 normalCoord    : TEXCOORD1;
    float3 tangent        : TANGENT;
    float3 binormal        : BINORMAL;
    float3 normal        : NORMAL;
};

struct VSOutputBump
{
    float4 pos                : POSITION;
    float2 diffuseCoord        : TEXCOORD0;
    float4 lit1Param        : TEXCOORD2;
    float4 lit2Param        : TEXCOORD3;
    float4 lit3Param        : TEXCOORD4;
    float4 lit4Param        : TEXCOORD5;
    float4 lit5Param        : TEXCOORD6;
    float4 lit6Param        : TEXCOORD7;
};

struct PSInputBump
{
    float2 diffuseCoord        : TEXCOORD0;
    float4 lit1Param        : TEXCOORD2;
    float4 lit2Param        : TEXCOORD3;
    float4 lit3Param        : TEXCOORD4;
    float4 lit4Param        : TEXCOORD5;
    float4 lit5Param        : TEXCOORD6;
    float4 lit6Param        : TEXCOORD7;
};

VSOutputBump VertexShaderBump( VSInputBump input )
{
    VSOutputBump output = (VSOutputBump)( 0 );
   
    output.pos                = mul( input.pos , mWorldViewProj ) ;
    output.diffuseCoord        = input.diffuseCoord;

    float3 worldPos            = mul( input.pos, mWorld );

    float3 tangent    = normalize( mul( input.tangent, mWorld ));
    float3 binormal    = normalize( mul( input.binormal, mWorld ));
    float3 normal    = normalize( mul( input.normal, mWorld ));

    float3 litDir1 = normalize( lit1Pos.xyz - worldPos );
    float3 litDir2 = normalize( lit2Pos.xyz - worldPos );
    float3 litDir3 = normalize( lit3Pos.xyz - worldPos );
    float3 litDir4 = normalize( lit4Pos.xyz - worldPos );
    float3 litDir5 = normalize( lit5Pos.xyz - worldPos );
    float3 litDir6 = normalize( lit6Pos.xyz - worldPos );

    output.lit1Param.xyz    = float3( dot( litDir1, tangent ), dot( litDir1, binormal ), dot( litDir1, normal ) );
    output.lit2Param.xyz    = float3( dot( litDir2, tangent ), dot( litDir2, binormal ), dot( litDir2, normal ) );
    output.lit3Param.xyz    = float3( dot( litDir3, tangent ), dot( litDir3, binormal ), dot( litDir3, normal ) );
    output.lit4Param.xyz    = float3( dot( litDir4, tangent ), dot( litDir4, binormal ), dot( litDir4, normal ) );
    output.lit5Param.xyz    = float3( dot( litDir5, tangent ), dot( litDir5, binormal ), dot( litDir5, normal ) );
    output.lit6Param.xyz    = float3( dot( litDir6, tangent ), dot( litDir6, binormal ), dot( litDir6, normal ) );

    output.lit1Param.w = lit1Range / pow( distance( lit1Pos.xyz, worldPos ), 2 );
    output.lit2Param.w = lit2Range / pow( distance( lit2Pos.xyz, worldPos ), 2 );
    output.lit3Param.w = lit3Range / pow( distance( lit3Pos.xyz, worldPos ), 2 );
    output.lit4Param.w = lit4Range / pow( distance( lit4Pos.xyz, worldPos ), 2 );
    output.lit5Param.w = lit5Range / pow( distance( lit5Pos.xyz, worldPos ), 2 );
    output.lit6Param.w = lit6Range / pow( distance( lit6Pos.xyz, worldPos ), 2 );

    return output;
};

float4 PixelShaderBump( PSInputBump input ) : COLOR0
{
    float3 bumpNormal = normalize( tex2D( normalSampler, input.diffuseCoord ) * 2.0f - 1.0f );   
   
    float3 light1 = lit1Color * pow( max( dot( bumpNormal, input.lit1Param.xyz ), 0.0f ), 0.8f) * input.lit1Param.w;
    float3 light2 = lit2Color * pow( max( dot( bumpNormal, input.lit2Param.xyz ), 0.0f ), 0.8f) * input.lit2Param.w;
    float3 light3 = lit3Color * pow( max( dot( bumpNormal, input.lit3Param.xyz ), 0.0f ), 0.8f) * input.lit3Param.w;
    float3 light4 = lit4Color * pow( max( dot( bumpNormal, input.lit4Param.xyz ), 0.0f ), 0.8f) * input.lit4Param.w;
    float3 light5 = lit5Color * pow( max( dot( bumpNormal, input.lit5Param.xyz ), 0.0f ), 0.8f) * input.lit5Param.w;
    float3 light6 = lit6Color * pow( max( dot( bumpNormal, input.lit6Param.xyz ), 0.0f ), 0.8f) * input.lit6Param.w;

    return tex2D( diffuseSampler, input.diffuseCoord ) * saturate( float4( light1 + light2 + light3 + light4 + light5 + light6, 1  ));
};

technique Main
{
    pass Bump
    {
        Lighting        = false;
        VertexShader    = compile vs_2_0 VertexShaderBump();
        PixelShader        = compile ps_2_0 PixelShaderBump();
    }
}

6 источников света ( можно еще один добавить ) за проход и все это с бампом!

далее запилю меню и выложу новую версию

pax 24.09.2012 21:26

Ответ: [TrueHorror] - разработка
 
А что массивы нельзя использовать в шейдерах?

mr.DIMAS 24.09.2012 21:38

Ответ: [TrueHorror] - разработка
 
Можно. А с семантиками как тогда?

Limonad 24.09.2012 22:33

Ответ: [TrueHorror] - разработка
 
Всем привет! Я пишу сценарий для игры, буду постепенно выкладывать отрывками и ждать ваших отзывов. Постараюсь выложится на полную!

Arton 25.09.2012 20:18

Ответ: [TrueHorror] - разработка
 
Сценарий в первом посте кошерный :-)
Не первое, не последние демо не пошло, после трального логотипа вылет.

mr.DIMAS 25.09.2012 20:34

Ответ: [TrueHorror] - разработка
 
скинь лог пожалуйста.

Arton 25.09.2012 20:46

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Вложение 17671

Кстати в логах написана Виста сервис пак 2, но у меня Windows 7 32bit без обновлений! Вернее это только в первом логе почему-то.

mr.DIMAS 25.09.2012 21:02

Ответ: [TrueHorror] - разработка
 
так, осталось понять почему вылетает. думал что из-за шейдеров - но нет

Arton 25.09.2012 21:10

Ответ: [TrueHorror] - разработка
 
При вылете винда выдаёт лог, может поможет:

Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: TrueHorror.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 505f64fa
Имя модуля с ошибкой: StackHash_0a9e
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000005
Смещение исключения: 00000000
Версия ОС: 6.1.7600.2.0.0.256.1
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

P. S. Попробовал на XP, оба демо пожаловались на отсутствие MSVCP 100.dll, ну это поправимо.

RBK 25.09.2012 21:20

Ответ: [TrueHorror] - разработка
 
Вторая версия у меня работает так-же. Сделай пожалуйста счетчик fps.

mr.DIMAS 25.09.2012 21:24

Ответ: [TrueHorror] - разработка
 
Не понял так-же - это как же?


Ок, ща буду искать баги.

mr.DIMAS 25.09.2012 21:27

Ответ: [TrueHorror] - разработка
 
2Arton есть возможно собрать игру с исходников? это бы очень облегчило поиск проблемы

Arton 25.09.2012 21:29

Ответ: [TrueHorror] - разработка
 
У меня ксорса нет, если с библами скинишь, попробую.

Мыло в личку отправил.

mr.DIMAS 25.09.2012 21:35

Ответ: [TrueHorror] - разработка
 
Вложений: 10
вот

в архиве новая версия.

с исходниками и всеми библами. можно собрать из исходников


http://tempfile.ru/file/2535654

Arton 25.09.2012 21:48

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

Да, скачал исходники зачем не знаю :) Не делай такие резкие карты нормалей, лучше настрой шейдер, иначе резать глаза потом будет!

mr.DIMAS 25.09.2012 21:52

Ответ: [TrueHorror] - разработка
 
да это точно, сделал слишком "глубокий" бамп. проработать еще и уровень надо, но Ваня никак не нарисует план - это его часть работы тоже

вообще же поначалу действия будут происходить в школе. сцена похищения

mr.DIMAS 25.09.2012 21:53

Ответ: [TrueHorror] - разработка
 
найт появился. запили тени нормальные( а то смешивание дает черноту )!!

FREE MAN 25.09.2012 22:24

Ответ: [TrueHorror] - разработка
 
mr.DIMAS Здесь самые последние тени для Xors3d поковыряй их, может что и намутишь, Найт за это братся не будет по скольку он уже как Джва года не пишет Xors!

mr.DIMAS 25.09.2012 22:27

Ответ: [TrueHorror] - разработка
 
Благодарю буду глядеть

mr.DIMAS 25.09.2012 23:43

Ответ: [TrueHorror] - разработка
 
есть такой кусок.

Код:

float4 PSMixShadows(float2 TexCoords : TEXCOORD0) : COLOR
{
          float4 src  = tex2D(samplerSrcShadow, TexCoords);
        float4 dest = tex2D(samplerResultShadow, TexCoords);

          return dest * src;
}

насколько я понял - если точка src яркая то и результат должен быть ярким
Код:

float4 PSMixShadows(float2 TexCoords : TEXCOORD0) : COLOR
{
                float4 src  = tex2D(samplerSrcShadow, TexCoords);
                float4 dest = tex2D(samplerResultShadow, TexCoords);

                return -((dest - src) - dest * src);
}

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

Limonad 26.09.2012 00:19

Ответ: [TrueHorror] - разработка
 
План уровня "Школа"
В 1 комнате находится главная героиня.

pax 26.09.2012 07:35

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от mr.DIMAS (Сообщение 239155)
найт появился. запили тени нормальные( а то смешивание дает черноту )!!

Найт вроде сейчас не работает над ксорсом, а от сквида давно нет вестей.

4yBa4Ok 26.09.2012 15:14

Ответ: [TrueHorror] - разработка
 
А что вообще со сквидом?

SBJoker 26.09.2012 16:20

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от 4yBa4Ok (Сообщение 239191)
А что вообще со сквидом?

Существует множество версий, но ни одна не проверена.

FREE MAN 26.09.2012 20:07

Ответ: [TrueHorror] - разработка
 
Ладно раскрою карты, Что мне ответил .Sqiud!

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

Nex 26.09.2012 23:55

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

Wegox 27.09.2012 02:49

Ответ: [TrueHorror] - разработка
 
Вложений: 1
Цитата:

Сообщение от Limonad (Сообщение 239170)
План уровня "Школа"
В 1 комнате находится главная героиня.

Кто же так план рисует:) во как надо:-D


А телеги так сквозь стену и проходят, если их в руки взять:(

FREE MAN 18.10.2012 23:19

Ответ: [TrueHorror] - разработка
 
mr.DIMAS Проект умер?

Arton 19.10.2012 23:10

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Phyton (Сообщение 240632)
mr.DIMAS Проект умер?

:''((

Хны-хны, описание такое няшное было!

Дык, присоединяюсь к вопросу!

mr.DIMAS 21.10.2012 01:55

Ответ: [TrueHorror] - разработка
 
Проект заморожен ввиду того, что я занят разработкой 3D принтера. Ориентировочно продолжу работу после ноября месяца.

Arton 21.10.2012 02:26

Ответ: [TrueHorror] - разработка
 
T_T

mr.DIMAS 01.09.2013 03:13

Ответ: [TrueHorror] - разработка
 
Вложений: 12
Хей, хей, хей. На даче делать вечерами было нечего. У меня был мой говнобук( Asus EEE PC, 2 Gb RAM, Intel GMA 3150 ), студия, исходники ирлихта и других библ, и полное отсутствие интернета . Ну и по вечерам я пилил двигло на директХе. Постепенно движок толстел, и тут я подумал - может игру запилить? По счастью у меня оказался с собой недодвиг в котором был самописный экспортёр из макса, только статика - никакой анимации. Недолго думая, начал делать хоррор( задолбали эти хорроры чес слово, но когда за окном сова кукукает :-) доброе светлое в голову не идет ). Потихому сделал небольшой уровень, написал нихуёвую скриптовую системку. Подтянул графен до PS 2.0 ( лол да GMA 3150 поддерживает ), там многопроходный рендеринг света. Со старых проектов понахватал звуков, еще пришлось распотрошить халфу вторую/первую тоже на звуки ). Собрал все воедино. И о чудо оно заработало :-). На говнобуке получил 15 ФПС при 3-х проходах рендеринга ( 5 источников света за проход ). Дал друганам потестить, 3 их 3-х человек насыпали по небольшой кучке кирпичей. Теперь твоя очередь дорогой мой ПеКарь тестировать.

http://tempfile.ru/file/2958080

Wegox 01.09.2013 03:49

Ответ: [TrueHorror] - разработка
 
Управление жуткое:-) есть один страшный момент - который Я возьму себе на заметку:super: даже и не думал об этом раньше, появилась идея как можно его обыграть... Я там ща застрял, надо переиграть:-D может всё так и есть как Я думаю.
Атмосфера норм:super:

Попытка номер два.
Провалился куда то, там бревно, нет текстур, и лампочка горит а патом вообще улетел :-)
Ну очень темно:crazy:

Arton 01.09.2013 04:19

Ответ: [TrueHorror] - разработка
 
Требует OpenAL32.dll, скачал, запихал в папку, ошибка - "Точка входа в процедуру alcGetString не найдена в библиотеке DLL OpenAL32.dll", скачал другую, аналогично. =/

Гм... Пошёл в папку блица взял оттуда OpenAL32.dll, игра запустилась и вылетела.



Windows 7 64

P. S. У тебя кстати там полно текстур не кратным двум! Приведи в порядок.

mr.DIMAS 01.09.2013 11:21

Ответ: [TrueHorror] - разработка
 
Цитата:

Сообщение от Arton (Сообщение 266236)
Требует OpenAL32.dll, скачал, запихал в папку, ошибка - "Точка входа в процедуру alcGetString не найдена в библиотеке DLL OpenAL32.dll", скачал другую, аналогично. =/

Гм... Пошёл в папку блица взял оттуда OpenAL32.dll, игра запустилась и вылетела.



Windows 7 64

P. S. У тебя кстати там полно текстур не кратным двум! Приведи в порядок.

Лог в студию. Походу с шейдерами проблема. Ибо даже на моем говнобуке со встроенной видюхой робит

Насчет текстур, их грузит D3DX так что пох. он их сам выправляет на степени


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

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