Sidebar

Неофициальный SDK

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 Дядя Миша:
возможно, что швы убираются одной строчкой
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Забавно, я всегда был уверен что координаты могут переходить на соседнюю грань, на то она и кубемапа кагбы. Вот гамно, а!
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
Заметил безумную вещь: яркость неба зависит от питча light_environment

[ADDED=ncuxonaT]1428534516[/ADDED]
Пока что у меня 2 препятствия на пути к PBR: швы на кубемапах и отсутствие HDR
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Заметил безумную вещь: яркость неба зависит от питча light_environment
Да! Раз у нас вечер так темно, а если день - светло. Это для будущей системы времени суток. Я потом еще раскрашу по какой-нибудь популярной модели неба.
Утро красит нежным светом стены древнега кремля, бггскнх.

[ADDED=Дядя Миша]1428564725[/ADDED]
Так товарищи. Вчера провел первые испытания убер-шейдеров. Сама идея делать еденичный шейдер вообще для всего мне показалась неудобной, поэтому я привычно разбил на группы - для солидных бмоделей, для транспарентных, ну и для студиомоделей аналогично. Вчера значит написал убер-шейдер для солидных бмоделей. Результат вполне себя оправдал - почти 100 фпс прироста и это только на карте-коробке и только на мировых полигонах. А там жеж еще монстрики, стекла. Продолжу имплементацию, через неделю увидите что получилось.
 
Last edited:

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
Да! Раз у нас вечер так темно, а если день - светло. Это для будущей системы времени суток. Я потом еще раскрашу по какой-нибудь популярной модели неба.
Для модели неба это может и нормально, но зачем же затемнять текстурное небо. Хочу я закат сделать, ставлю красивые картинки неба, а они темными рисуются.

Немного говнокода нормализации лайтпроб:
Code:
	//weight multiplier calculation
	float item = 1;
	float distance_sum = 0;
	float distance_mult = 1;
	for( int i = 0; i < u_LightSamples; i++ )
	{
		item = 1;
		for( int j = 0; j < u_LightSamples; j++ )
		{
			item *=lightDists[j];
		}
		item /= lightDists[i];
		distance_sum += item;
		distance_mult *= lightDists[i];
	}
	float weight_m = distance_mult / distance_sum;
..........................................................................
	//а вес лайтпробы определяется как 
	float weight = weight_m / lightDists[i];
Для пущей красоты можно расстояния до лайтпроб предварительно возводить в квадрат
 

Attachments

Last edited:

KiQ

New member
Jul 12, 2010
397
2
0
2 ncuxonaT:
Ты б лучше крипи-тени поправил, а то никакие лайтпробы не спасут :)
 

FiEctro

Ведущий
Jul 28, 2006
17,139
33
2 ncuxonaT:
Мне кажется первый вариант более правильный. На втором - освещенная часть сидушки стала тёмной.

>> Для модели неба это может и нормально, но зачем же затемнять текстурное небо. Хочу я закат сделать, ставлю красивые картинки неба, а они темными рисуются.

Для этого нужно использовать специальный скайбокс без деталей. И программно крутить ему якрость и цвет.
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 FiEctro:
А на первом часть седушки в тени стала светлой. И вообще все модели пересвечены.
2 KiQ:
Шейдером это не поправить, увы
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 Дядя Миша:
что именно?

Еще с нормализацией при увеличении количества лайтпроб освещение будет только точнее, а без неё модель будет становиться всё ярче и ярче
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Code:
float ColorNormalize( const Vector &in, Vector &out )
{
	float	max, scale;

	max = in.x;
	if( in.y > max )
		max = in.y;
	if( in.z > max )
		max = in.z;

	if( max == 0.0f )
		return 0.0f;

	scale = 1.0f / max;
	out = in * scale;

	return max;
}
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 Дядя Миша:
эмммм
Мой алгоритм нормализует вклад каждой лайтпробы так, чтобы в сумме был 1.
Оффтоп

А по твоему алгоритму ближайшая лайтпроба будет иметь вес 1, а остальные какой-то меньший. При этом если есть две ближайшие лайтпробы, то они обе будут иметь вес 1, и того яркость модели в этом месте будет как минимум в 2 раза выше, чем у лайтмапы.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Нормализовать надо конечный результат, а не каждый вклад.
твоя нормализация просто убивает диффузное освещение.
 

ncuxonaT

Well-known member
May 5, 2013
1,136
37
48
2 Дядя Миша:
так у меня и конечный результат нормализован, общий вклад от лайтпроб равен единице, а у тебя каждая лайтпроба аддитивно подсвечивает ВСЮ модель.
Моя нормализация берет свет для модели в соответствии с лайтмапой, как она может убивать диффузное освещение
 
Last edited:

ZAZA

New member
Nov 8, 2011
2,434
40
0
2 ncuxonaT:
Очень красиво получилось с нормализацией. Имхо, модель не должна быть настолько засвеченой, как на первом скрине (смотрю на стулья)
 

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord