HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Отправлено XaeroX 08-11-2019 в 18:15:
Дядя Миша
Эй, это же ку3дм1 из волатилы!
__________________
Отправлено Дядя Миша 08-11-2019 в 18:33:
Цитата:
XaeroX писал:
Эй, это же ку3дм1 из волатилы!
Yesлибы! 
Добавлено 08-11-2019 в 21:33:
Вообщем ладно, бордюр я конечно оставлю, но эксперимент по прежнему считаю неудовлетворительным. К тому же этот фильтр жрёт фпс довольно сильно.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 08-11-2019 в 19:41:
Бордюр наверное должен браться с прилегающих поверхностей
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Отправлено nemyax 08-11-2019 в 19:45:
Дядя Миша
Ты ж писал, что будет одна динамика, и вдруг лайтмапы.
Отправлено Дядя Миша 08-11-2019 в 21:21:
nemyax ну выбросите лайтмапы, будет одна динамика 
Добавлено 09-11-2019 в 00:21:
До сих пор разгребаю последствия полетевшего винта. Тут внезапно выяснилось, что все бэкапы паранои - тоже того, уже не являются архивами.
Ну есть конечно финальные актуальные сорцы. Но промежуточные все утеряны. Месяца за 4-5.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ncuxonaT 08-11-2019 в 22:32:
Подтверждаю, у меня тоже швы вылазят. Теоретически я могу сделать, чтобы моя убиралка швов делала это с учетом бикубика, но тогда нужно будет хранить все куски с бордюром в 1 пиксель. Ну или сразу фикшенный атлас.
Отправлено Дядя Миша 09-11-2019 в 08:37:
Цитата:
ncuxonaT писал:
Теоретически я могу сделать, чтобы моя убиралка швов делала это с учетом бикубика
основная проблема в том, что лайтмапа это набор несвязанных кусочков. Вот и вылазит.
Добавлено 09-11-2019 в 11:34:
Заглянул в скрипты Wolf2009. По организации скриптов там смесь изд3-шных материалов и попыток сделать систему более гибкой.
Вот например так выглядит тепичный материал
Цитата:
textures/decals/pebbles_01
{
EditorImage textures/decals/pebbles_01_d
Image DiffuseMap textures/decals/pebbles_01_d
Image NormalMap textures/decals/pebbles_01_local
Image SpecularMap textures/decals/pebbles_01_s
Vector Specular 16 0 1 0
AlphaTest .1
noOverlays
VertexColor
PolygonOffset 1 1
NoTFix
Contents Nonsolid
NoShadows
nofragment
Vector DetailNormalControls 3 3 2 0
}
В ку3 было достаточно написать "map". Здесь еще требуется связать имя юнита в шейдере. Ну как бы уже не слишком наглядно.
А вот техника
Цитата:
Technique "AmbientDecalAdd"
{
Sort Depth
Pass
{
VertexShader "StandardDrawTexture"
{
Uniform vColorModulate Material::ColorModulate
Uniform vColorAdd Material::ColorAdd
Uniform vHPosBias BackEnd::HPosBias
}
FragmentShader "StandardDrawTexture"
{
Sampler ColorMap
{
Texture Material::ColorMap { _default }
MinFilter Linear
MipFilter Linear
MagFilter Linear
}
}
Blend Enable
BlendFunc One One
AlphaWrite Disable
DepthWrite Disable
}
}
Но как я понял, набор параметров везде свой. Тоже, как у меня доступ к общим переменным через ::
Вообщем я видимо самостоятельно нащупал какую-то вполне общепринятую концепцию.
Добавлено 09-11-2019 в 11:37:
Для сравнения вот моя техника
C++ Source Code:
1 | technique "studioSolidLightmapPass" |
3 | vertShader( "glsl/forward/scene_studio_vp.glsl" ); |
4 | fragShader( "glsl/forward/scene_studio_fp.glsl" ); |
6 | image u_LightMap = "entity->$LightmapTexture"; |
7 | image u_DeluxeMap = "entity->$DeluxemapTexture"; |
8 | float u_LightStyleValues[64] = "globals->lightStyles"; |
9 | float u_AmbientFactor = "globals->ambientFactor"; |
10 | vec3 u_LightDiffuse = "lightProbe->color"; |
11 | vec3 u_LightDir = "lightProbe->direction"; |
12 | vec2 u_LightShade = "lightProbe->shadeAmbient"; |
13 | vec3 u_AmbientCube[6] = "lightProbe->ambientCube"; |
16 | #define SURFACE_LIGHTING |
19 | #if MODEL_HAS_VERTEXLIGHT |
20 | #define VERTEX_LIGHTING |
23 | // NOTE: TBN should be computed even bump texture is missed |
29 | #define LIGHTING_FULLBRIGHT |
36 | #if r_lightmap == 2 && MODEL_HAS_DELUXMAP |
39 | #define NORMAL_RG_PARABOLOID |
Правда она более широкого употребления - это шаблон для всех солидных студиомоделей. А вот шейдеробъект
C++ Source Code:
1 | shaderObject "StudioModel" |
3 | setTechniquePass( "solid", studioSolidLightmapPass ); |
4 | // setTechniquePass( "spot", studioSolidSpotLightPass ); |
5 | // setTechniquePass( "omni", studioSolidOmniLightPass ); |
6 | // setTechniquePass( "proj", studioSolidProjLightPass ); |
8 | // declare common uniforms |
9 | image u_ColorMap = "globals->$WhiteTexture"; // fallback texture |
10 | image u_DetailMap = "materials.def->detailMap"; |
11 | image u_NormalMap = "textures/<modelname>/<texname>_norm"; |
12 | image u_GlossMap = "textures/<modelname>/<texname>_gloss"; |
13 | // image u_GlowMap = "textures/<texname>_luma"; |
15 | vec4 u_BonesArray[384] = "entity->bonesMatrix"; |
16 | vec4 u_BoneQuaternion[128] = "entity->bonesQuaternion"; |
17 | vec3 u_BonePosition[128] = "entity->bonesPosition"; |
18 | vec2 u_DetailScale = "materials.def->detailScale"; |
19 | vec2 u_TexOffset = "entity->conveyorMovement"; |
20 | float u_Smoothness = "materials.def->smoothness"; |
21 | vec4 u_RenderColor = "entity->renderColor"; |
22 | mat4 u_ModelMatrix = "entity->transform"; |
23 | vec3 u_ViewOrigin = "render->viewOrigin"; |
25 | addImageLocation( u_ColorMap, "*<texname>" ); // embedded model texture |
26 | addImageLocation( u_ColorMap, "textures/<modelname>/<texname>" ); |
28 | // add image extra info to help engine |
29 | setImageHint( u_ColorMap, "Albedo" ); |
30 | setImageHint( u_NormalMap, "Normal" ); |
32 | // add flags for image loader |
33 | addImageFlags( u_ColorMap, TF_SILENT_LOADING|TF_KEEP_SRC_IF_ALPHA ); |
34 | addImageFlags( u_NormalMap, TF_SILENT_LOADING|TF_NORMALMAP ); |
37 | #if MODEL_NUM_BONES == 1 |
38 | // #define MAXSTUDIOBONES 1 |
41 | #if MODEL_HAS_BONEWEIGHTS |
42 | #define APPLY_BONE_WEIGHTING |
45 | #if r_physic_based_shading |
49 | #if r_detailtextures && u_DetailMap |
53 | #if r_normal_mapping && u_NormalMap |
58 | #if r_specular && u_GlossMap && u_Smoothness > 0 |
66 | #if WORLD_HAS_GLOBALFOG |
всё ли понятно по синтаксису?__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 09-11-2019 в 10:18:
ncuxonaT перенести бикубическую фильтрацию в лайтмаппер, перед дядьмишиной затиралкой швов попяченой с хл2
Отправлено Дядя Миша 09-11-2019 в 11:43:
Цитата:
Crystallize писал:
перед дядьмишиной затиралкой швов попяченой с хл2
В хл2 нет никакой затиралки швов.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 09-11-2019 в 12:10:
ну в сорсовском лайтмаппере тогда.
Отправлено Дядя Миша 09-11-2019 в 12:30:
ну нету в сорсе никакой затиралки швов нигде. Включи mat_showlightmaps или как оно там называется и убедись сам.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено ncuxonaT 09-11-2019 в 13:20:
Crystallize у меня есть затиралка швов, но она работает исходя из того, что потом текстура будет фильтроваться билинейно. Можно переделать для бикубика, но нужно будет как-то хранить бордюры
Отправлено SNMetamorph 09-11-2019 в 14:12:
А по поводу размерностей в UI есть какие-то идеи для движка?
Я ковырялся с этой проблемой, в итоге решил что со всем многообразием дисплеев с разными разрешениями, размерами и DPI, проще просто добавить в настройки параметр для скейла всего UI целиком. Не получилось у меня найти какого-то универсального решения.
Отправлено Дядя Миша 09-11-2019 в 14:42:
Цитата:
ncuxonaT писал:
Можно переделать для бикубика
и на билинейке швы полезут?
Добавлено 09-11-2019 в 17:42:
Цитата:
SNMetamorph писал:
Не получилось у меня найти какого-то универсального решения.
а для UI и не существует такого решения. Скейлить нельзя, всё должно попадать пиксель в пиксель для каждого разрешения.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено SNMetamorph 09-11-2019 в 15:01:
Цитата:
Дядя Миша писал:
всё должно попадать пиксель в пиксель для каждого разрешения
А ещё и это ко всему прочему. Вообще жуть какая то.