Sidebar

env_projectedtexture & кинематографическая физика

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
env_projectedtexture & кинематографическая физика

Всем привет. Вот у меня 2 вопроса.
1. Чего не хватает в 2007 версии сорса ентити env_projectedtexture? Если кто знает,можете рассказать как она вообще работает? Я все вроде баги профиксил с офф сайта Valve. И всё-ровно она как-то криво отбрасывает тени по сравнению с source 2010 ( portal 2 ).
2. Вот есть такое понятие: кинематографическая физика. А можем ли мы, простые смертные, создавать её? Есть какие-нибудь редакторы?
 

DeTLeR

New member
Dec 17, 2006
2,769
2 staseg:
Криво пофиксил, там всё нормально работает. Только иногда бывают баги, если прожекттекса находится прямо над предметами, которые должны отбрасывать тень.
 

snaksan

New member
Jun 13, 2010
601
32
2 staseg: вопрос где-то уже задавался. думаю можем создавать. 3ds max в помощь. как проп делаешь нужную часть плагином разрушаешь анимацю делаешь конвертируешь и вуаля
 

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
2 DeTLeR:
Слушай, а можешь мне кинуть файлы ( .cpp ) которые надо исправлять уже исправленные? А то я несколько дней голову ломал :mad:
 

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
2 DeTLeR:
Ты очень любезен :)
Итак.
Enabling multiple shadow maps - сделал успешно.
Fixing targeting - после описанной процедуры игра вылетает. Как правильно сделать? ( вылет только при загрузке карты, где есть env_projectedtexture )
Fixing cuts in projected texture - сделал.
Fixing Parenting - делать не пробовал. Что это исправляет?
Enabling visibility tests - тоже не пробовал. Что исправляет?
Enabling shadow receiving on the view model - аналогично.
Decreasing shadow bleeding and "ghosting" - аналогично.
Lowering the amount of "grain" on shadows - зернистость вроде исправил. Во всяком случае разобрался, как регулировать.
Create a shadow map depth texture greater than the framebuffer size - что это исправляет?
Fix configurable texture value in Hammer - сделал успешно.
Буду офигенно благодарен за помощь :bigsmile:
 
Last edited:

DeTLeR

New member
Dec 17, 2006
2,769
2 staseg:
Fixing targeting - после описанной процедуры игра вылетает. Как правильно сделать? ( вылет только при загрузке карты, где есть env_projectedtexture )
Вот в этом все твои беды. Остальные пункты не так важны, но сделай их и не думай особо.
На клиенте вот это:
Code:
AngleVectors( GetAbsAngles(), &vForward, &vRight, &vUp );
Смени на это:
Code:
Vector vecToTarget = m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin();
QAngle vecAngles;
VectorAngles( vecToTarget, vecAngles );
AngleVectors( vecAngles, &vForward, &vRight, &vUp );
На сервере просто смени функцию CEnvProjectedTexture::InitialThink на ту, что в туторе, т.е. вот эту:
Code:
void CEnvProjectedTexture::InitialThink( void )
{
	if ( m_hTargetEntity == NULL && m_target != NULL_STRING )
		m_hTargetEntity = gEntList.FindEntityByName( NULL, m_target );
	if ( m_hTargetEntity == NULL )
		return;
 
	Vector vecToTarget = (m_hTargetEntity->GetAbsOrigin() - GetAbsOrigin());
	QAngle vecAngles;
	VectorAngles( vecToTarget, vecAngles );
	SetAbsAngles( vecAngles );
 
	SetNextThink( gpGlobals->curtime + 0.1 );
}
И да, я очень любезен.
 

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
2 DeTLeR:
Я понял. Я всё именно так и сделал. Вылетает.
И ещё. Есть ссылка на исходники? А то их удалили из раздела.
 

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
Всё, Targeting профиксил. Еще один вопрос.
[HIDE]Enabling visibility tests

Projected textures are not tested for visibility. Being constantly enabled creates issues like shadows bleeding through walls. To fix them, head into c_env_projectedtexture.cpp, and make these changes:
Add a new function (remember to declare it in the header):
bool C_EnvProjectedTexture::ShouldDraw()
{
//No need to check the flashlight for visibility.
if( m_bCameraSpace )
return true;

//Trace forward to the nearest brush face to get a good leaf test vector.
Vector vForward;
GetVectors( &vForward, NULL, NULL );

Vector vTraceStart = GetAbsOrigin();
Vector vTraceEnd = GetAbsOrigin() + vForward * m_flFarZ;

trace_t tr;
CTraceFilterWorldOnly filter;

UTIL_TraceLine( vTraceStart, vTraceEnd, CONTENTS_SOLID && CONTENTS_OPAQUE, &filter, &tr );

//Check to see if our end vector is in a visible leaf.
int LeafNum = enginetrace->GetLeafContainingPoint( tr.endpos );
return render->AreAnyLeavesVisible( &LeafNum,1 );
}
In C_EnvProjectedTexture::UpdateLight, change the first line to read:
if ( m_bState == false || !ShouldDraw() )[/HIDE]
Что значит "обозначить функцию в шапке? Где её надо обозначить? И как?
 

Psycho-A

 
Aug 29, 2009
3,967
37
73
0
Fixing Parenting - делать не пробовал. Что это исправляет?
Это позволяет нормально припарентить энтитю к какому-либо динамическому объекту (т.е. энтитя будет перемещаться вместе с ним, подобно light_dynamic). Довольно удобно при создании переносных фонарей или качающихся на потолке ламп...
 

staseg

Ищу долбаное желание
Jul 5, 2010
231
29
Как видно: тени отображаются не так, как надо. ( Модель пробоины в стене стоит вплотную к полу. )
Enabling multiple shadow maps - Сделал
Fixing targeting - Сделал
Fixing cuts in projected texture - Сделал
Enabling visibility tests - Нужна помощь.
Enabling shadow receiving on the view model - Сделал
Decreasing shadow bleeding and "ghosting" - Сделал
Lowering the amount of "grain" on shadows - Знаю, как делать. На скрине еще не сделал
Create a shadow map depth texture greater than the framebuffer size - Нужна помощь.
 

Attachments

Last edited:

haos9cr4

New member
Dec 6, 2009
269
34
Create a shadow map depth texture greater than the framebuffer size
После того как ввожу эту функцию мод перестает запускаться
 

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