Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты C++

Ответ
 
Опции темы
Старый 22.09.2012, 17:34   #16
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

http://connect.creativelabs.com/open.../AllItems.aspx

третий сверху
(Offline)
 
Ответить с цитированием
Старый 22.09.2012, 23:01   #17
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [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();
    }
}
(Offline)
 
Ответить с цитированием
Старый 23.09.2012, 15:01   #18
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: [TrueHorror] - разработка

так что на счет черного экрана?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 23.09.2012, 20:21   #19
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Счастье Ответ: [TrueHorror] - разработка

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

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

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

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

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

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

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

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

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

Устарело

Последний раз редактировалось mr.DIMAS, 24.09.2012 в 01:58.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (24.09.2012)
Старый 24.09.2012, 00:04   #20
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

добавил эффект затуманивания рассудка от темноты( как в амнезии почти что )

выложу скриншоты:
Миниатюры
Нажмите на изображение для увеличения
Название: TrueHorror 2012-09-23 23-00-00-76.jpg
Просмотров: 937
Размер:	52.3 Кб
ID:	17658  Нажмите на изображение для увеличения
Название: TrueHorror 2012-09-23 23-00-24-69.jpg
Просмотров: 889
Размер:	40.7 Кб
ID:	17659  Нажмите на изображение для увеличения
Название: TrueHorror 2012-09-23 23-01-00-69.jpg
Просмотров: 882
Размер:	24.7 Кб
ID:	17660  Нажмите на изображение для увеличения
Название: TrueHorror 2012-09-23 23-00-56-29.jpg
Просмотров: 933
Размер:	33.8 Кб
ID:	17661  
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
FREE MAN (24.09.2012)
Старый 24.09.2012, 00:52   #21
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: [TrueHorror] - разработка

Тележки странно вибрируют если их в руки взять, это и правда страшно!
будто в них демоны. И да, если их кидать то они не переворачиваются.
Красного эффекта не ведал.
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 01:13   #22
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

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

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

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

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

http://tempfile.ru/file/2535239

Устарело

Последний раз редактировалось mr.DIMAS, 25.09.2012 в 22:13.
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 01:22   #23
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: [TrueHorror] - разработка

Аааа, это ты как бы в реальном времени проект делаешь что-ли, Я думал ты просто скриншоты выложил.
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 01:23   #24
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

Аааа, это ты как бы в реальном времени проект делаешь что-ли, Я думал ты просто скриншоты выложил.
когда время позволяет, сегодня только 4 часа потратил на то чтобы вспомнить как кодить на HLSL
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (24.09.2012)
Старый 24.09.2012, 01:27   #25
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

помимо "красного эффекта" - присутствует еще и "колыхание" сцены
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 01:31   #26
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: [TrueHorror] - разработка

Сообщение от mr.DIMAS Посмотреть сообщение
помимо "красного эффекта" - присутствует еще и "колыхание" сцены
Чё за "колыхание сцены"
Телеги сквозь решётки проходят.
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 01:36   #27
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

оу щит. ты минуты две в тени( можно где коробки ) постой и погляди потом на стену.

с "прохождением сквозь"уже разобрался. завтра скину
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (24.09.2012)
Старый 24.09.2012, 01:42   #28
Wegox
Бывалый
 
Аватар для Wegox
 
Регистрация: 17.12.2011
Сообщений: 862
Написано 443 полезных сообщений
(для 1,133 пользователей)
Ответ: [TrueHorror] - разработка

Во теперь все эффекты увидал и услыхал, а так мимо коробок пробегал и вниз
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mr.DIMAS (24.09.2012)
Старый 24.09.2012, 01:46   #29
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [TrueHorror] - разработка

вопрос к труЪ кодерам:
возможно ли вторым проходом добавить бамп?
(Offline)
 
Ответить с цитированием
Старый 24.09.2012, 18:16   #30
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Ответ: [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 источников света ( можно еще один добавить ) за проход и все это с бампом!

далее запилю меню и выложу новую версию
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com