Перейти к контенту

Рекомендуемые сообщения

Ребята помогите пожалуйста, настройте сан шафты

bb7924d02977f4dd2c8733cc48bfedfe25d71820
090d9ad06cff1e8df12940f0b126716a25d71820

Ссылка http://rghost.ru/59811195

 

Изменено пользователем PlayMod

ba9599747b.png  36914dd0ee.png

Ссылка на комментарий

@PlayMod, Если ты о ребристости, то тебе нужно увеличить кол-во семплов.

 

#define SSH_NUM_SAMPLES float(130)          // Quality. Higher is better. 32 is accebtable, 128 high quality (254 = max)

Изменено пользователем Anonim
  • Спасибо 2
  • Полезно 1
Ссылка на комментарий
Anonim

Подскажи, в каких файлах/шейдерах увеличить кол-во семплов?

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий

@Romann, мод у тебя какой? Если что-то связанное с OGSE, то ogse_sunshafts.h. Если нет, то что-то типа sunshafts.h.

P.s. Поиск файла по тексту знаешь что такое?

Изменено пользователем Earth2Space
  • Спасибо 1
Ссылка на комментарий

Спасибо всем, но вот в  ogse_sunshafts.h  такие строчки : 

 

#ifndef OGSE_SUNSHAFTS_H
#define OGSE_SUNSHAFTS_H
#include "common.h"
#ifndef SS_QUALITY
#define SS_MAX_SAMPLES int(1)
#else
#if SS_QUALITY==1
#define SS_MAX_SAMPLES int(20)
#else
#if SS_QUALITY==2
#define SS_MAX_SAMPLES int(50)
#else
#if SS_QUALITY==3
#define SS_MAX_SAMPLES int(100)
#endif
#endif
#endif
#endif
#define SS_FARPLANE float(180.0)

  не могу понять где именно нужно увеличить?

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий

#if SS_QUALITY==3

define SS_MAX_SAMPLES int(100)

100 на 254. Это если ты включил r2_sun_shafts 3.

P.s. Открой ogse_config.h и почитай комменты.

Изменено пользователем Earth2Space
  • Спасибо 1
Ссылка на комментарий

меня сюда послали))) спрашиваю здесь:

какой шейдер нужно поставить на текстуру лазера в СДК 0.4?

ce318a904b9ct.jpg

 

отпишитесь в личку, спасибо

Изменено пользователем Stalkerion
Ссылка на комментарий
gXdMo.jpg

 

 

#ifndef _SUN_SHAFTS
#define _SUN_SHAFTS
#include "common.h"

uniform float4 common_params2;
uniform sampler2D s_jitter_0;
uniform sampler2D s_jitter_1;
uniform sampler2D s_jitter_5;

float normalize_depth(float depth) {
return (saturate(depth/SS_FARPLANE));
}

float3 blend_soft_light(float3 a, float3 B) {
float3 c = 2 * a * b + a * a * (1 - 2 * B);
float3 d = sqrt(a) * (2 * b - 1) + 2 * a * (1 - B);
return ( b < 0.5 )? c : d;
}

float3 calc_sunshafts(float2 tc, float3 init_color) {
#ifdef USE_SUN_SHAFTS
float3 out_color = float3(0,0,0);
float sun_dist = SS_FARPLANE / (sqrt(1 - L_sun_dir_w.y * L_sun_dir_w.y));
float4 sun_pos_projected = mul( m_VP, float4( sun_dist * L_sun_dir_w + eye_position, 1 ) );
float4 sun_pos_screen = convert_to_screen_space(sun_pos_projected)/sun_pos_projected.w;
float2 sun_vec_screen = sun_pos_screen.xy - tc;

float angle_cos = dot(-eye_direction, normalize(L_sun_dir_w));
float ray_fade = saturate(saturate(angle_cos)*(1 - saturate(sun_vec_screen))*saturate(length(sun_vec_screen)*1000));
float2 init_tc = tc;

float3 pos = tex2D(s_position, tc);
float dep = pos.z;
float mask = (saturate(angle_cos*0.1 + 0.9) + normalize_depth(pos.z) - 0.99999) * SS_DENSITY;
sun_vec_screen *= angle_cos * SS_DENSITY / SS_SAMPLES;
float depth_accum = 0;

for (float i = 0; i < SS_SAMPLES; i++) {
tc += sun_vec_screen;
out_color += float3(0.25, 0.25, 0.25);
depth_accum += saturate(1 - tex2D(s_position, tc).z*1000);
}
out_color *= saturate(depth_accum/SS_SAMPLES);

#ifdef SS_DUST
float dust_size = 8/SS_DUST_SIZE;
float3 jit;
float2 jtc = init_tc;
float2 sun_dir_e = L_sun_dir_e.xy;
sun_dir_e /= sin(common_params2.x);
sun_dir_e *= common_params2.y;
jtc.x += sun_dir_e.x;
jtc.y -= sun_dir_e.y;
jtc.x = (jtc.x > 1.0)?(jtc.x-1.0):jtc.x;
jtc.y = (jtc.y < 0.0)?(1.0-jtc.y):jtc.y;
jit.x = tex2D(s_jitter_0, float2(jtc.x, jtc.y + timers.x*0.01*SS_DUST_SPEED)*dust_size).x;
jit.y = tex2D(s_jitter_1, float2(jtc.x + timers.x*0.01*SS_DUST_SPEED, jtc.y)*dust_size).y;
jit.z = tex2D(s_jitter_5, jtc).x;
jit.z = saturate(jit.z + SS_DUST_DENSITY - 1);
float3 dust = saturate(float3(jit.x, jit.x, jit.x)*float3(jit.y, jit.y, jit.y)*float3(jit.z, jit.z, jit.z));
float len = length(dust);
dust *= SS_DUST_INTENSITY;
dust = lerp(0, dust, (1 - saturate(dep * 0.2)) * (1 - saturate((0.001 - dep)*10000.0)));
dust += float3(1,1,1);
#else
float3 dust = float3(1,1,1);
#endif

out_color *= 2.0 * ray_fade / SS_SAMPLES * dust;
out_color = init_color + out_color * L_sun_color * (SS_INTENSITY - init_color);
out_color = blend_soft_light(out_color, L_sun_color * mask * -0.1 + 0.6) - init_color;
return out_color;
#else
return 0;
#endif
}
#endif

 

 

/////////////////////////////////////////////////////////////
// Саншафты ака GodRays
#define USE_SUN_SHAFTS // включить лучи от солнца
#define SS_FARPLANE 180 // менять не стоит
#define SS_DENSITY 0.7 // плотность семплов или длина лучей
#define SS_INTENSITY 0.45 // "заметность" лучей
#define SS_DUST // включить пыль в саншафтах
#define SS_DUST_SPEED float(0.4) // скорость частиц пыли
#define SS_DUST_INTENSITY float(4.0) // яркость пылинок
#define SS_DUST_DENSITY float(1.0) // плотность частиц пыли
#define SS_DUST_SIZE float(0.7) // размер пылинок

// Качество
#ifndef SS_QUALITY
#define SS_SAMPLES int(0) // кол-во семплов для "откл"
#else
#if SS_QUALITY==1
#define SS_SAMPLES int(50) // кол-во семплов для "низко"
#else
#if SS_QUALITY==2
#define SS_SAMPLES int(60) // кол-во семплов для "средне"
#else
#if SS_QUALITY==3
#define SS_SAMPLES int(70) // кол-во семплов для "высоко"
#endif
#endif
#endif
#endif

 

 

Делайте копи-паст в свои файлы с заменой.

Изменено пользователем Anonim
  • Спасибо 3
Ссылка на комментарий

Ещё кое-что о ребристости.

 

#ifdef SS_BLUR


float blur_delta = 2 * (.5f/1024.f);
out_color += (tex2Dlod(s_image, float4(tc + blur_delta,0,0)) + tex2Dlod(s_image, float4(tc - blur_delta,0,0))) * (1.f/2.f) * SS_BLEND_FACTOR;
#else
out_color += float3(0.3, 0.3, 0.3);
#endif

 


eIkqr.jpg

 

Изменено пользователем Anonim
  • Спасибо 1
  • Нравится 1
Ссылка на комментарий

Приветствую. На Р2 и выше вообще работают шейдеры с фейковым отражение неба, но не прозрачные, как например вода или стекло?

Ссылка на комментарий

 

 

На Р2 и выше вообще работают шейдеры с фейковым отражение неба, но не прозрачные, как например вода или стекло?

Прямо абсолютно непрозрачными у меня сделать не получaлось. Но прозрачность вроде можно снизить, например, увеличивая силу отражения amount в ps-шейдере.

 

Вот эксперименты с шейдером стекла вертолёта:

https://yadi.sk/d/I3qnsWPOdZYsp

  • Нравится 4
Ссылка на комментарий

Делаем копию models/model, ставим галку Alpha-blend, получаем в игре на этом шейдере енвиронмент - если повезет. Ну и неправильное освещение до кучи.

 

 

 

Прямо абсолютно непрозрачными у меня сделать не получaлось.

Хех, ну в текстуре-то альфу белым залей, чего там пытаться?

Ссылка на комментарий

Киньте мануал по шейдерам в сталкере.

или простой примере шйдера с прилагающимися коментариями(желательно Пиксельный)

спасибо!

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...