HLFX.Ru Forum Страницы (22): « 1 2 3 [4] 5 6 7 8 » ... Последняя »
Показать все 319 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Освещение в Source Engine (https://hlfx.ru/forum/showthread.php?threadid=5746)


Отправлено ncuxonaT 17-10-2021 в 22:13:

Цитата:
FiEctro писал:
Это тот компилятор что ты адаптировал для хл?
Лайтбекер может запекать освещение для обычных моделей, не преобразуя их в бсп?

Да. Может, он запекает бсп, преобразуя их в обж.


Отправлено FiEctro 17-10-2021 в 22:21:

Цитата:
ncuxonaT писал:
Да. Может, он запекает бсп, преобразуя их в обж.


Где можно пощупать версию для обж? Без халфовских форматов.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ncuxonaT 18-10-2021 в 01:39:

Нет версии, пригодной для использования конечным пользователем. Я не придумал, каким должен быть интерфейс.


Отправлено FiEctro 18-10-2021 в 07:02:

Цитата:
ncuxonaT писал:
Нет версии, пригодной для использования конечным пользователем. Я не придумал, каким должен быть интерфейс.


Так а смысл то тогда какой в нём? Если просто нужны идеи пиши, может что то подскажу. У меня в голове сформировалось примерное видение что должен уметь подобный запекатор. Но это уже наверное чисто OBJ версия.

Добавлено 18-10-2021 в 10:02:

Вот в плане интерфейса можно что то вроде такого. Большинство запекальщиков (блендер, юнити, анрил), строятся примерно по такому способу.
https://a.radikal.ru/a13/2110/91/85dddefed167.png

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 18-10-2021 в 07:11:

Объясните мне вот какую вещь интересную. Формат obj не предполагает хранение номера страницы атласа лайтмапы. Может быть в ase еще кастомную строку можно вписать и самостоятельно её парсить, но в obj такое не приветствуется. Из чего логически вытекает, что на каждую модель может быть только одна страница атласа. Но модели бывают разные.
Вот возьму я скажем ЧАЭС из сталкера одним obj. И как мне все её полигоны уместить в одну страницу лайтмапы? ДА НЕ КАК.
И что делать?

Добавлено 18-10-2021 в 10:11:

В NT для промежуточного формата я рассчитываю атлас не для конкретной страницы, а в абсолютном пространстве, без соотношения к люкселю.
Т.е. координаты UV для атласа находятся в юнитах и сами эти бесшовные куски могут пересекаться друг с другом как угодно по этим координатам.
Главное чтобы кусок не пересекался сам с собой. Ну а дальше я просто умножаю эти координаты в юнитах на (1.0 / lightmapSampleSize) и получаю желаемый масштаб лайтмапы, который выставил пользователь. И вот же в таком виде фильтрую в реальные страницы атласа, которые генерирует компилятор. В ту же тему и генерация лайтмап для инстанс-моделей, но там еще более хитро сделано. Там сперва считается мини-атлас для отдельно взятой модели, как бы в локальном пространстве. И получается нечто вроде мини-странички, для которой в реальной лайтмапе целиком выделяется место. А в структуре инстанс-моделей есть двухмерный оффсет в странице, а сами UV естественно используются одни и те же.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 18-10-2021 в 09:08:

Цитата:
Дядя Миша писал:
Объясните мне вот какую вещь интересную. Формат obj не предполагает хранение номера страницы атласа лайтмапы. Может быть в ase еще кастомную строку можно вписать и самостоятельно её парсить, но в obj такое не приветствуется. Из чего логически вытекает, что на каждую модель может быть только одна страница атласа. Но модели бывают разные.
Вот возьму я скажем ЧАЭС из сталкера одним obj. И как мне все её полигоны уместить в одну страницу лайтмапы? ДА НЕ КАК.
И что делать?


Насчёт .obj не знаю. Но вообще развёрток может быть огромное количество, и они могут перекрывать друг друга, например если ты захочешь сделать минилайтмапу для лайтстилей. И эти атласы это теже самые развертки которыми спамит классический бсп, и соответственно вместо нормальной развертки там 1 полигон = 1 лайтмапа (хоть и очень маленькая), во всяком случае так экспортирует крафти, но как ты писал что это не всегда так.

Ничего не мешает разбить карту на несколько мешей, где у каждого будет своя развертка, и например запекать только ту часть что ты редактируешь, а на остальные время не тратить вообще.

Т.е. формально у тебя есть сцена с ЧАЭС. По ней всей шуруют лучи рейтрейсера, но ты например можешь взять меш только террейна и запечь лайтмапу только для террейна. При этом само здание ЧАЭС не перезапишется, если ты сам не сделаешь это. Сам посуди, зачем каждый раз пересчитывать освещение абсолютно на всей карте, если ты хочешь отредактировать маленький кусочек?

У меня буквально была идея запечь анимацию из лайтмап, и с интерполяцией в шейдере её проигрывать путем смены материалов. Можно так впихнуть бесконечное количество лайтстилей. Один вопрос только - нафига? если в юнити и так есть динамические источники.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 18-10-2021 в 10:34:

Цитата:
FiEctro писал:
Сам посуди, зачем каждый раз пересчитывать освещение абсолютно на всей карте, если ты хочешь отредактировать маленький кусочек?

Если речь идёт о прямом свете - то незачем. Но если об индиректе, то по другому никак просто. Можно пытаться в некотором радиусе это сделать, но это не слишком надёжно.

Цитата:
FiEctro писал:
но ты например можешь взять меш только террейна и запечь лайтмапу только для террейна.

Так я же и говорю, что у меня единый меш. Мне что его разбивать на составляющие вручную?

Цитата:
FiEctro писал:
Можно так впихнуть бесконечное количество лайтстилей

Нельзя. Ты эти лайтстили запечёшь, ну допустим в мультислойную текстуру.
И сколько такая текстура будет весить? Гигабайт?
Абсолютно любая задача в программировании упирается либо в память, либо в процессорное время.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 18-10-2021 в 12:59:

Цитата:
Дядя Миша писал:
Нельзя. Ты эти лайтстили запечёшь, ну допустим в мультислойную текстуру.
И сколько такая текстура будет весить? Гигабайт?
Абсолютно любая задача в программировании упирается либо в память, либо в процессорное время.


Ничего не упрётся, просто меняешь сам материал и всё. Никаких мультислойных текстур. И 2 лайтстиля на материал для интерполяции, тебя же не просят запекать абсолютно каждый кадр, 6-12 лайтстилей хватит чтобы вращать тоже солнышко и это твои слова, ты сам это говорил. Если предположить что у нас солнышко одноцветное как и GI можно вообще всё в 1 шейдер утолкать.

Но по факту 1 текстура - материал. Если уж совсем в край упороться - проецировать видеоролик через шейдер.

Но опять - зачем всё это? Динамические источники света сейчас тянут даже мобилы, даже с тенями. Как и гигабайт памяти даже по меркам сорса 2004 года не такая уж нереальная цифра.

Цитата:
Дядя Миша писал:
Так я же и говорю, что у меня единый меш. Мне что его разбивать на составляющие вручную?


У меня обратная проблема при конвертации из БСП, там ещё эти тджунки дуратские. Да и лайтмапу из кусочков я не знаю как клеить.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 18-10-2021 в 13:22:

Цитата:
FiEctro писал:
6-12 лайтстилей хватит чтобы вращать тоже солнышко и это твои слова, ты сам это говорил.

Да хватит, но уже не актуально, скажем так.

Цитата:
FiEctro писал:
Ничего не упрётся, просто меняешь сам материал и всё

Если у тебя карта не игрушечная, сколько места лайтмапы займут?

Цитата:
FiEctro писал:
там ещё эти тджунки дуратские.

Здрасти-приехали. T-Junc везде нужны, не только для брашей. В брашах просто ситуации когда они нужны регулярно возникают, если моделировать треугольниками, то намного реже.
Цитата:
FiEctro писал:
Да и лайтмапу из кусочков я не знаю как клеить.

Куда клеить?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 18-10-2021 в 13:30:

Цитата:
Дядя Миша писал:
Если у тебя карта не игрушечная, сколько места лайтмапы займут?


Карта в стиле даста 2 или инферно вполне умещается на ргб 1024х1024, можно и побольше. Не забывай, мне не нужно сверчеткое качество лайтмапы, ибо тени можно получить шадоумапами теми же. Задача лайтмапы это в основном индирект и GI.

Цитата:
Дядя Миша писал:
Куда клеить?


Ну вот чтобы как у Психопата единый атлас получился.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ncuxonaT 18-10-2021 в 13:43:

FiEctro вообще я думал про наглядный интерфейс с визуализацией, чтобы можно было расставить источники света. Потому что обж их не поддерживает.

Дядя Миша в obj у uvw 3 координаты, номер атласа можно задавать через w. Но в чем проблема уместить все полигоны в одну страницу?

Цитата:
Дядя Миша писал:
T-Junc везде нужны, не только для брашей.

За тжунки в приличном обществе бьют лицо.
Цитата:
FiEctro писал:
У меня обратная проблема при конвертации из БСП, там ещё эти тджунки дуратские. Да и лайтмапу из кусочков я не знаю как клеить.

С бспшным лайтбейкером шла утилита для конвертации из бсп в обж, она клеила лайтмапу из кусочков.


Отправлено FiEctro 18-10-2021 в 13:57:

Цитата:
ncuxonaT писал:
FiEctro вообще я думал про наглядный интерфейс с визуализацией, чтобы можно было расставить источники света. Потому что обж их не поддерживает.


Да лучше уж тогда .fbx или .blend парсить. Они вроде как сохраняют источники света, во всяком случае юнити пытается их воспроизвести у себя на сцене. А там можно преобразовать и в обж, и во всё что угодно.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено ncuxonaT 18-10-2021 в 14:20:

FiEctro оба формата слишком сложные.
При конвертации из бсп в обж я дописывал в него дополнительную инфу в виде комментариев. Типа
#lights_start
#direct 932 220 -4 0.078431 0.078431 0.078431 -15 90 0 5 0 0
#omni 324 512 -1344 0.516724 0.516724 0.784314 0 0 0 0 0 0
#lights_end
Насколько затруднительно научить блендер такое дописывать?


Отправлено FiEctro 18-10-2021 в 15:23:

>> Насколько затруднительно научить блендер такое дописывать?

Хз, я в питоне не шарю. Но думаю такое возможно.
Например что то вроде этого:
https://github.com/sobotka/blender-...fter_effects.py

C++ Source Code:
1
#target AfterEffects
2
 
3
/**************************************
4
Scene : Scene
5
Resolution : 1920 x 1080
6
Duration : 10.416667
7
FPS : 24.000000
8
Date : 2021-10-18 18:37:05.530400
9
Exported with io_export_after_effects.py
10
**************************************/
11
 
12
 
13
 
14
function compFromBlender(){
15
 
16
  var compName = prompt("Blender Comp's Name \nEnter Name of newly created Composition","BlendComp","Composition's Name");
17
  if (compName){
18
    var newComp = app.project.items.addComp(compName, 1920, 1080, 1.000000, 10.416667, 24.000000);
19
    newComp.displayStartTime = 0.083333;
20
 
21
 
22
    // **************  CAMERA 3D MARKERS  **************
23
 
24
 
25
    // **************  OBJECTS  **************
26
 
27
    var _Cube = newComp.layers.addNull();
28
    _Cube.threeDLayer = true;
29
    _Cube.source.name = "_Cube";
30
    _Cube.property("position").setValue([960.000000,540.000000,0.000000],);
31
    _Cube.property("orientation").setValue([-90.000000,-0.000000,0.000000],);
32
    _Cube.property("scale").setValue([100.000000,100.000000,100.000000],);
33
 
34
 
35
    // **************  SOLIDS  **************
36
 
37
 
38
    // **************  IMAGES  **************
39
 
40
 
41
    // **************  LIGHTS  **************
42
 
43
    var POINT_Light = newComp.layers.addLight("POINT_Light", [0.0, 0.0]);
44
    POINT_Light.autoOrient = AutoOrientType.NO_AUTO_ORIENT;
45
    POINT_Light.property("position").setValue([8786.391113,-10795.415039,1930.471558],);
46
    POINT_Light.property("orientation").setValue([-105.366619,-34.499094,-110.666823],);
47
    POINT_Light.property("intensity").setValue([100000.000000],);
48
    POINT_Light.property("Color").setValue([1.000000,1.000000,1.000000],);
49
 
50
    var POINT_Point = newComp.layers.addLight("POINT_Point", [0.0, 0.0]);
51
    POINT_Point.autoOrient = AutoOrientType.NO_AUTO_ORIENT;
52
    POINT_Point.property("position").setValue([-6525.077637,-5859.921387,-9057.288086],);
53
    POINT_Point.property("orientation").setValue([-90.000000,-0.000000,0.000000],);
54
    POINT_Point.property("intensity").setValue([1000.000000],);
55
    POINT_Point.property("Color").setValue([1.000000,1.000000,1.000000],);
56
 
57
    var SUN_Sun = newComp.layers.addLight("SUN_Sun", [0.0, 0.0]);
58
    SUN_Sun.autoOrient = AutoOrientType.NO_AUTO_ORIENT;
59
    SUN_Sun.property("position").setValue([-3933.934570,-9684.547852,1523.843506],);
60
    SUN_Sun.property("orientation").setValue([-90.000000,-0.000000,0.000000],);
61
    SUN_Sun.property("intensity").setValue([100.000000],);
62
    SUN_Sun.property("Color").setValue([1.000000,0.060095,0.145128],);
63
 
64
 
65
    // **************  CAMERAS  **************
66
 
67
    var _Camera = newComp.layers.addCamera("_Camera",[0,0]);
68
    _Camera.autoOrient = AutoOrientType.NO_AUTO_ORIENT;
69
    _Camera.property("position").setValue([15089.071289,-8979.953125,-13297.518555],);
70
    _Camera.property("orientation").setValue([-35.941983,-40.659187,-25.284997],);
71
    _Camera.property("zoom").setValue(2666.666667,);
72
 
73
 
74
 
75
  }else{alert ("Exit Import Blender animation data \nNo Comp name has been chosen","EXIT")};}
76
 
77
 
78
  app.beginUndoGroup("Import Blender animation data");
79
  compFromBlender();
80
  app.endUndoGroup();



Можно в блендере фигачить энтити как в хамере.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 18-10-2021 в 15:35:

Цитата:
FiEctro писал:
Ну вот чтобы как у Психопата единый атлас получился.

Ну есть стандартные функции набивания атласов.
Цитата:
ncuxonaT писал:
Но в чем проблема уместить все полигоны в одну страницу?

Размер страницы ограничен. А слишком большие текстуры тормозят рендеринг, особенно на старом железе. Никто не юзает 16384х16384, к примеру. Да и потом страницы крайне желательно делать одного размера все.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 18:00. Страницы (22): « 1 2 3 [4] 5 6 7 8 » ... Последняя »
Показать все 319 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024