Страницы (2): « 1 [2] Показать все 769 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- XashXT/3D [Вопросы и ответы] (https://hlfx.ru/forum/showthread.php?threadid=3689)
m_pModelInstance->m_plightmatrix = matrix3x4( origin, angles, Vector( 1,1,1 ) );// было m_pModelInstance->m_protationmatrix; |
1 | tr.modelorg = m_pModelInstance->m_plightmatrix.VectorITransform( RI->vieworg ); |
2 | Vector right = m_pModelInstance->m_plightmatrix.VectorIRotate( RI->vright ); |
3 | Vector lightorg = m_pModelInstance->m_plightmatrix.VectorITransform( pl->origin ); |
4 |
5 | // было: |
6 | // tr.modelorg = m_pModelInstance->m_protationmatrix.VectorITransform( RI->vieworg ); |
7 | // Vector right = m_pModelInstance->m_plightmatrix.VectorIRotate( RI->vright ); |
8 | // Vector lightorg = m_pModelInstance->m_protationmatrix.VectorITransform( pl->origin ); |
gl_FragColor = 2 * diffuse * shadow * MeshScale; |
__________________
Мой мод на Xash
Для чего конкретно используются m_flPoseParameter? Которые подмяли под себя все векторы vuser. В каких сценариях?
__________________
Мой мод на Xash
Новая система блендинга в студиомоделях, как в сорсе.
При помощи этих параметров можно в моделях гибко управлять программной анимацией. Это как боне-контроллеры, только гораздо круче.
Можно смешивать разные анимации, а контроллер определяет степень смешивания, можно меняя значение контроллера промотать все кадры в анимации, да много чего можно.
У в хл2 багги, к примеру колёса крутятся через эти контроллеры, подвеска на них, стрелки приборов. У персов эта штука управляет блендингом, причём кол-во смешиваемых анимаций может превышать 3х3.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А в последнем билде ксашмода есть какие-то примеры посмотреть? Где-то используется? Или это просто задел для мододелов
__________________
Мой мод на Xash
__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Обратил внимание, что на некоторых моделях некоторые фейсы не освещаются. Светишь на модель ящика, под углом, одна сторона светлая, другая темная. Только если светить на сторону ящика под очень маленьким углом (менее 10 градусов где-то), видно, что сторона начинает освещаться. В параное смотрю это пофикшено.
И такое происходит только с некоторыми моделями. Куда копать, чтобы пофиксить это?
Добавлено 17-11-2021 в 12:02:
Нашел примерное место, если var_Normal сделать равным не N, a -N, то эти фейсы освещаются нормально, а те, которые освещались - наоборот. Как я и предполагал... Теперь как бы пофиксить это.
Добавлено 17-11-2021 в 13:59:
Вроде получилось. Поставил vec3 L = normalize( var_Normal ) вместо vec3 L = normalize( u_LightDir.xyz )
__________________
Мой мод на Xash
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Да я как бы и не спорю, я так вообще слабо в этом понимаю, но результат
Добавлено 17-11-2021 в 16:41:
Вообще да. Фонарик починился, а вот обычный env_dynlight так и не освещает эту модель.
__________________
Мой мод на Xash
__________________
Мой мод на Xash
С какой целью у прожектора выставлено это?
pl->frustum.DisablePlane( FRUSTUM_FAR ); // only use plane.normal |
__________________
Мой мод на Xash
__________________
Мой мод на Xash
Пишу здесь, т.к. тут по теме, а там затеряется. Алилуя. Кажется, лайты практически починились.
Вот скрины. Модель одна и та же, скейл 0.2, 1.0 и 16.0.
Динлайт: http://aynekko.pw/temp/test1.jpg
Фонарик: http://aynekko.pw/temp/test2.jpg
Решилось вот так:
var_LightVec = ( u_LightOrigin.xyz - worldpos.xyz ) * MeshScale; |
shadow = ShadowOmni( -var_LightVec, u_ShadowParams ); |
-pl->projectionMatrix[2][2], pl->projectionMatrix[3][2] |
__________________
Мой мод на Xash
Это не решение, а загон проблемы еще глубже.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А внешне выглядит вроде как надо
__________________
Мой мод на Xash
Начнём с того, что var_LightVec вообще должен быть еденичным.
А ты его зачем-то наоборот удлиняешь.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Понятно. Этого я не знал, да и не мог знать. Ну, я еще поковыряюсь дальше, чтобы хоть к чему-то привести, а потом быть может твоего фикса дождусь.
__________________
Мой мод на Xash
Я тут обратил внимание, что в оригинале в шейдере у меня
var_LightVec = ( u_LightOrigin.xyz - position.xyz ); |
Vector lightorg = m_pModelInstance->m_protationmatrix.VectorITransform( pl->origin ); |
var_LightVec = ( u_LightOrigin.xyz - worldpos.xyz ) * MeshScale; |
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
var_LightVec единичный что ли?
Добавлено 21-12-2021 в 21:13:
var_LightVec = ( u_LightOrigin.xyz - worldpos.xyz ); |
float MeshScale = u_MeshScale; |
var_LightVec = ( u_LightOrigin.xyz - position.xyz ) * MeshScale; |
__________________
Мой мод на Xash
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Второй шейдер, с небольшими моими изменениями
1 | void main( void ) |
2 | { |
3 | float dist = length( var_LightVec ); |
4 | float atten = 1.0 - saturate( pow( dist * u_LightOrigin.w, u_LightDiffuse.a )); |
5 | if( atten <= 0.0 ) discard; // fast reject |
6 | vec3 L = vec3( 0.0 ); |
7 |
8 | #if defined( STUDIO_LIGHT_PROJECTION ) |
9 | L = normalize( var_LightVec ); |
10 |
11 | // spot attenuation |
12 | float spotDot = dot( normalize( u_LightDir.xyz ), L ); |
13 | float fov = ( u_LightDir.w * FOV_MULT * ( M_PI / 180.0 )); |
14 | float spotCos = cos( fov + fov ); |
15 | if( spotDot < spotCos ) discard; |
16 | #elif defined( STUDIO_LIGHT_OMNIDIRECTIONAL ) |
17 | L = normalize( var_LightVec ); |
18 | #endif |
19 | vec3 N = normalize( var_Normal ); |
20 |
21 | // compute the diffuse term |
22 | vec4 diffuse = texture2D( u_ColorMap, var_TexDiffuse ); |
23 |
24 | if( diffuse.a < 0.5 ) discard; // no glowing on tex with alpha |
25 |
26 | vec3 light = vec3( 1.0 ); |
27 | float shadow = 1.0; |
28 |
29 | #if defined( STUDIO_LIGHT_PROJECTION ) |
30 | light = u_LightDiffuse.rgb; // light color |
31 |
32 | // texture or procedural spotlight |
33 | light *= texture2DProj( u_ProjectMap, var_ProjCoord ).rgb; |
34 | // atten *= smoothstep( spotCos, spotCos + 0.1, spotDot ) * 0.5; |
35 | #if defined( STUDIO_HAS_SHADOWS ) |
36 | shadow = ShadowProj( var_ShadowCoord, u_ShadowParams.xy, dot( N, L )); |
37 | if( shadow <= 0.0 ) discard; // fast reject |
38 | #endif |
39 | #elif defined( STUDIO_LIGHT_OMNIDIRECTIONAL ) |
40 | light = u_LightDiffuse.rgb; |
41 | light *= textureCube( u_ProjectMap, -var_LightVec ).rgb; |
42 | // light *= textureCube( u_ProjectMap, -normalize( var_LightVec )).rgb; |
43 |
44 | #if defined( STUDIO_HAS_SHADOWS ) |
45 | // fix shadows!!! |
46 | shadow = ShadowOmni( -var_LightVec, u_ShadowParams ); |
47 | if( shadow <= 0.0 ) discard; // fast reject |
48 | #endif |
49 | #endif |
50 |
51 | #if defined( STUDIO_FOG_EXP ) |
52 | float fogFactor = saturate( exp2( -u_FogParams.w * ( gl_FragCoord.z / gl_FragCoord.w ))); |
53 | atten = Q_mix( 0.0, atten, fogFactor ); |
54 | #endif |
55 | // do modified hemisperical lighting |
56 | float NdotL = max( (dot( N, L ) + ( SHADE_LAMBERT - 1.0 )) / SHADE_LAMBERT, 0.0 ); |
57 | diffuse.rgb *= light.rgb * NdotL * atten * DLIGHT_SCALE; |
58 |
59 | float Brightness = u_DynLightBrightness; |
60 | if( Brightness <= 0 ) Brightness = 1; |
61 |
62 | // compute final color |
63 | gl_FragColor = 2.5 * Brightness * diffuse * shadow; |
64 | } |
1 | m_pModelInstance->m_plightmatrix = matrix3x4( origin, angles, Vector( 1.0f / scale.x, 1.0f / scale.y, 1.0f / scale.z ) ); |
2 | ...... |
3 | ...... |
4 | tr.modelorg = m_pModelInstance->m_plightmatrix.VectorITransform( RI->vieworg ); |
5 | Vector right = m_pModelInstance->m_plightmatrix.VectorIRotate( RI->vright ); |
6 | Vector lightorg = m_pModelInstance->m_plightmatrix.VectorITransform( pl->origin ); |
7 | Vector lightdir = m_pModelInstance->m_plightmatrix.VectorIRotate( pl->frustum.GetPlane( FRUSTUM_FAR )->normal ); |
8 |
9 | matrix4x4 lightView = pl->modelviewMatrix.ConcatTransforms( m_pModelInstance->m_protationmatrix ); |
10 | matrix4x4 projectionView = pl->projectionMatrix.Concat( lightView ); |
11 | projectionView.CopyToArray( gl_lightViewProjMatrix ); |
__________________
Мой мод на Xash
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Мой мод на Xash
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Мой мод на Xash
Нет, надо вспомнить, почему свет именно в локальном пространстве.
На кол-во юниформов это никак не влияет. Возможно это как-то связано с хромом.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сейчас кое-что понял насчет теней от динлайта. Т.к. проекция не учитывает angles, я пытался нарыть хоть что-то и обнаружил вот такую прямую зависимость (см. аттач). Со скейлом проблем нет, только angles.
Координаты проекции теней берутся из (-pl->projectionMatrix[2][2], pl->projectionMatrix[3][2]), я стал крутить ее и так и сяк, но нужного результата не получил. Как мне ее повернуть на angles модели? Или что-то еще сделать, чтобы она это учитывала?
Я пробовал делать так
matrix4x4 OmniShadowMatrix = pl->projectionMatrix.ConcatTransforms( m_pModelInstance->m_protationmatrix ); |
. . . . . . . . |
pglUniform4fARB( RI->currentshader->u_ShadowParams, shadowWidth, shadowHeight, -OmniShadowMatrix[2][2], OmniShadowMatrix[3][2] ); |
__________________
Мой мод на Xash
Метод тыка можно использовать, когда у тебя 2-3 варианта. В остальных случаях надо понимать что ты делаешь.
Добавлено 22-12-2021 в 20:02:
Хотя. Вот я сейчас пытаюсь побороть лайт-лики от радиосити на всратой геометрии. Мне известна причина их появления, мне известен способ борьбы, он уже дал положительный результат, ну а толку? Сижу и всё равно тыкаю, смотрю как будет лучше.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну вот я уже понял, что мне надо повернуть эту pl->projectionmatrix. Наверное. Пробую еще вариант. Уже полез читать про матрицы и вроде это то что нужно, но не работает. Есть какие-то идеи?
OmniShadowMatrix.ConcatRotate( m_pCurrentEntity->curstate.angles.x, 1, 0, 0 ); |
OmniShadowMatrix.ConcatRotate( m_pCurrentEntity->curstate.angles.y, 0, 1, 0 ); |
OmniShadowMatrix.ConcatRotate( m_pCurrentEntity->curstate.angles.z, 0, 0, 1 ); |
OmniShadowMatrix.ConcatRotate( -m_pCurrentEntity->curstate.angles.z, 1, 0, 0 ); |
OmniShadowMatrix.ConcatRotate( -m_pCurrentEntity->curstate.angles.x, 0, 1, 0 ); |
OmniShadowMatrix.ConcatRotate( -m_pCurrentEntity->curstate.angles.y, 0, 0, 1 ); |
__________________
Мой мод на Xash
pl->projectionMatrix.CreateProjection( 90.0f, 90.0f, Z_NEAR_LIGHT, pl->radius ); |
__________________
Мой мод на Xash
Дядя Миша
Aynekko переводи всё в мировое пространство, с локальным ты задолбаешься.
__________________
Мой мод на Xash
ncuxonaT ты сам пробовал так бороться или только другим советуешь?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Я нашел способ как вращать шадоумапу для точечного источника. Но это просто тест и ничего более, как попытка определить, где хотя бы нужно изменять.
Оригинал
ShadowOmni(-var_LightVec, u_ShadowParams); |
1 | vec3 ang = u_MeshAngles; |
2 | float xx = u_test; // gl_test консольное значение |
3 | vec3 rot = vec3( -var_LightVec.x*cos(-ang.y + xx) + var_LightVec.y * sin(-ang.y+xx), -var_LightVec.x*sin(-ang.y + xx) - var_LightVec.y*cos(-ang.y + xx), var_LightVec.z); |
4 | shadow = ShadowOmni( -rot, u_ShadowParams); |
1 | vec3 ang = u_MeshAngles; |
2 | vec3 rot = vec3( -var_LightVec.x*cos(ang.y * 0.0175 + M_PI) + var_LightVec.y * sin(ang.y * 0.0175 + M_PI), -var_LightVec.x*sin(ang.y * 0.0175 + M_PI) - var_LightVec.y*cos(ang.y * 0.0175 + M_PI), var_LightVec.z); |
3 | 4 |
4 | shadow = ShadowOmni( -rot, u_ShadowParams); |
__________________
Мой мод на Xash
А в чём прикол теней и света в локальном пространстве, зачем оно вообще используется?
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Продолжение эпопеи с тенями
Вот то что выше писал, переписал как матрицу, уже начинаю что-то подозревать. Это в шейдере.
1 | vec3 ang = u_MeshAngles; |
2 |
3 | mat3 m; |
4 | m[0][0] = -var_LightVec.x*cos(ang.y * 0.0175 + M_PI); |
5 | m[1][0] = var_LightVec.y * sin(ang.y * 0.0175 + M_PI); |
6 | m[2][0] = 0; |
7 | m[0][1] = -var_LightVec.x*sin(ang.y * 0.0175 + M_PI); |
8 | m[1][1] = -var_LightVec.y*cos(ang.y * 0.0175 + M_PI); |
9 | m[2][1] = 0; |
10 | m[0][2] = 0; |
11 | m[1][2] = 0; |
12 | m[2][2] = var_LightVec.z; |
13 |
14 | vec3 ShadowVec = m * vec3(1.0); |
15 |
16 | shadow = ShadowOmni( -ShadowVec, u_ShadowParams); |
1 | mat3 m2; |
2 | m2[0][0] = -var_LightVec.x*cos(ang.x * 0.0175 + M_PI); |
3 | m2[1][0] = 0; |
4 | m2[2][0] = -var_LightVec.z * sin(ang.x * 0.0175 + M_PI); |
5 | m2[0][1] = 0; |
6 | m2[1][1] = var_LightVec.y; |
7 | m2[2][1] = 0; |
8 | m2[0][2] = var_LightVec.x * sin(ang.x * 0.0175 + M_PI); |
9 | m2[1][2] = 0; |
10 | m2[2][2] = -var_LightVec.z * cos(ang.x * 0.0175 + M_PI); |
11 |
12 | mat3 m3; |
13 | m3[0][0] = var_LightVec.x; |
14 | m3[1][0] = 0; |
15 | m3[2][0] = 0; |
16 | m3[0][1] = 0; |
17 | m3[1][1] = -var_LightVec.y * cos(ang.z * 0.0175 + M_PI); |
18 | m3[2][1] = var_LightVec.z * sin(ang.z * 0.0175 + M_PI); |
19 | m3[0][2] = 0; |
20 | m3[1][2] = -var_LightVec.y * sin(ang.z * 0.0175 + M_PI); |
21 | m3[2][2] = -var_LightVec.z * cos(ang.z * 0.0175 + M_PI); |
__________________
Мой мод на Xash
Aynekko перестань тратить время на ерунду
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Мой мод на Xash
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
__________________
Мой мод на Xash
Если ты понимаешь что делаешь - ты и знаешь, что ты получишь.
Если не понимаешь - у тебя миллионы вариантов перебора. Жизни не хватит.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Ну что, все пофикшено. Оказалось, нужно было просто матрицы записать в обратном порядке. Наконец-то проблема со светотенью полностью разрешилась. Правильно или нет - у меня уже нет ни сил, ни желания притрагиваться. Несколько месяцев попыток прошли не зря. Однако ж, без Дяди Миши и советом про матрицу с обратным скейлом я бы еще долго сидел.
__________________
Мой мод на Xash
Ну вообщем вернул обратно всё в мировое пространство?
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Получается так? Но я сделал это в шейдере. Сделал копию var_LightVec перед тенями и повернул его в зависимости от angles модели. Я долго делал то же самое в коде, но почему-то ничего не получалось. Почем и решил взять уже вектор, который был трансформирован в вертексном шейдере. Не прогадал однакось!
__________________
Мой мод на Xash
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Я твой код не видел, откуда я знаю. Ну получилось случайно, теперь не трогай, что уж.
Добавлено 24-12-2021 в 16:40:
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Как отключить кровь на моделях от выстрела
Всех с наступающим!
Как отключить кровь на моделях от выстрела в мультиплеере , какой командой или что то нужно закоментить в коде?
Crystallize так обнова же скоро, сам увидишь.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Сейчас ставил порталы, и очень долго снова вкатывался, как их располагать. По итогу оказалось, что браш нужно ставить с текстурой определенным образом, а уже в angles задавать поворот, как он должен быть в игре. И вопрос, а почему так? Почему к примеру зеркала работают просто на брашевом полигоне, а с порталами такие странные извраты?
С мониторами тоже не все так просто, нужно отражать текстуру по оси Х (делать отрицательный скейл), а также перевернуть ее на 180 градусов, вверх-ногами.
__________________
Мой мод на Xash
Так уж исторически сложилось. На тот момент я не мог заставить их правильно работать с иной текстурной матрицей, там же двойное преобразование.
А когда мог - оставил для совместимости.
Да не страшно, народ всё равно префабов наделает и будет ими пользоваться.
Добавлено 13-02-2022 в 18:43:
ЗЫ, если кому интересно - я на тот момент упорно не вдуплял, что текстурная матрица - не локальная, а в мировом пространстве. Да и не умел я её тогда правильно трансформировать, в отличие от обычной 3х4, там есть одна тонкость.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
А исправить это как-то можно?
__________________
Мой мод на Xash
Aynekko если умеешь в тройные матричные преобразования - исправь.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
trigger_camera не смотрит на info_target, если он прикреплен парентом к чем-либо. У камеры есть такой код
Vector vecGoal = UTIL_VecToAngles(m_hTarget->GetLocalOrigin() - GetLocalOrigin()); |
Vector vecGoal = UTIL_VecToAngles(m_hTarget->GetAbsOrigin() - GetLocalOrigin()); |
__________________
Мой мод на Xash
Всё правильно, да. Не везде нужен локальный оригин.
Локальный - в пространстве родителя, глобальный - в пространстве мира.
Если родителя нет, то они совпадают. Очевидно, что камера нацеливается на объект в мировом пространстве, поскольку его координаты идут на клиент.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Подскажите по порталам. Проблема на скрине в аттаче.
Красной линией обозначена граница портала, переступив эту линию игрок переходит на другую сторону. Но, один проход выглядит визуально бесшовным, а другой имеет вот такой видимый шов, что портит визуальность. При всем этом сам механизм перехода бесшовный, то есть если смотреть прямо когда переходишь (значит настроил все правильно).
Карта скомпилена без vis, r_nocull тоже ничего не делает.
__________________
Мой мод на Xash
попробуй zhlt_worldluxels
__________________
Мой мод на Xash
Такое бывает, если неправильно натянуть текстуру портала.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Она была натянута криво на обеих порталах. Сейчас попробовал растянуть текстуру ровно на всю сторону браша. Не поменялось вообще ничего.
Вот видео: https://www.youtube.com/watch?v=6a1cCulkhkA
То есть получается, он видит мир на той стороне, но почему-то обрезает пол. Потому что сквозь шов, я вижу браши той стороны, которые под полом.
__________________
Мой мод на Xash
Текстуру мало просто растянуть. Её надо еще правильно ориентировать.
И браш с текстурой всегда должен смотреть в одном направлении. А переориентировать портал в нужную сторону через angles.
Посмотри как qstyle сделано. Только так это будет работать правильно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Разобрался. Оказывается, центр оригин-браша портала должен быть не в центре самого браша func_portal, а должен быть прямо в плоскости поверхности с portal-текстурой. Капец заморочки лютые конечно...
__________________
Мой мод на Xash
Дело в том, что я портальные браши всегда делал сверхтонкие, вот и не замечал этой особенности.
Ну в NT этого мрака уже не будет.
Да и по сути, в ксаш-моде это единственная заморочка, всё остальное прозрачно.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Временная зона GMT. Текущее время 02:30. | Страницы (2): « 1 [2] Показать все 769 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024