Перейти к содержанию
SkyLoader

Универсальные компиляторы уровней х64

Рекомендуемые сообщения

 
   

del

Изменено пользователем macron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

macron а нет, докомпилил траву , аи сетку и спавн, запустил, глюки почти пропали. 

 

Спойлер

QpNX3kc.jpeg
dHsvdpI.jpeg
EM75gdj.jpeg
0pFogEs.jpeg
ddXFOZv.jpeg
oIEkA9u.jpeg
DXgSy7o.jpeg
a89uQRL.jpeg


С близка, с камеры ГГ вроде все нормально, в основном. А из далека вон там где ЖД ветка, чуть видно какую то тень как от горы, это баговано как то. Но легкая тень и только из далека.

Все таки это NVIDIA CUDA шалит.


vDGz4K9.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1_A можешь проверить еще с -noise и -notess. Иногда повышает fps и меняет тип сглаживания или типа того (обратить внимание на кругловатые объекты).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1_A , у тебя был баг альфы текстуры террайна в папке левел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

macron подождем @SkyLoader что скажет по поводу багов (черные тени квадратненькие). Разница в компиле где то 1 час. Эм, не критично, но все-же. Лайтмапов наверное раньше было много потому что они были маленьких размеров, а тут собирает их в кучу в большие текстуры. Наверное (догадка, почему всего 5 лайтмапов на всю карту).

У меня тут еще другие баги не относящиеся к компиляторам, Сидорович вылетает и другой торговец не хочет на стул садится (аимпоинт). По фпсу, в центре карты вроде нормально все (50-60 фпс). Давненько я тут ничего не делал.
 

По компиляции, то раньше на зеоне (4 ядерный проц, в компе, без видеокарты) я собирал где то с неделю, эту локацию. А сейчас быстрее намного получается. Но на зеоне я еще не пробывал, может попозже. (у меня просто 2 компа, можно поставить на одном компил, а на втором заниматься другими делами). Но компы старенькие.


Дополнено 6 минуты спустя

andreyholkin а конкретней, какой именно текстуры? 
gamedata\levels\hallway\terrain\terrain_hallway.dds ?

Просто на скриншотах, Это из камеры (демо рекорд), а если в живую (от камеры ГГ), то в некотрых местах тени то появляются то пропадают (большие черные). То есть проблема с тенями. Может и с текстурой тоже.

Но как видишь без CUDA, все нормально, относительно. По крайне мере такой чернухи нету.


vDGz4K9.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

1_A  , паковка лайтмап зависит от файла shaders_xrlc.xr в gamedata сдк. ЗП файл в 10 раз сжимает лайтмамы.


Дополнено 5 минуты спустя
Только что, 1_A сказал:

какой именно текстуры? 
gamedata\levels\hallway\terrain\terrain_hallway.dds ?

она самая.

 

https://disk.yandex.ru/d/mm4iNy_fRazgRg Вот тут разно-настроенные файлы xr.
1 - оригинал ЗП.
10 - это без сжатия, как в чн 1500 - время компиля очень долгое.
2- это правленный чн файл однако, сжатие больше от 1 в 2 раза :u1F914: непомню.
4- это сжатие меньшее в 4 раза от оригинала (10), время дольше, чет я уже сам забыл что от чего.

Тут все наоборот - незапутайся. Тестируй.

в ЗП сжатие 10 - это значит развертка мелкая, больше лайтмап умещается в текстуру -- быстрее компиль.
в ЧН 1500 без сжатия - это и есть истина, время компиля раза в 3 дольше.

 


Дополнено 13 минуты спустя
Только что, macron сказал:

можешь проверить еще с -noise и -notess. Иногда повышает fps и меняет тип сглаживания или типа того

Не меняет тип сглаживания. Недолжно быть такого на этапе компилятора.

-noise - это шум на уровне вертексов однако, для встряски геома. Я им вообще не пользуюсь. Убивает оригинальность.

-notess - понимать-понимаю, а что даёт не знаю. Отключение тесселяции, есть такой процесс в компиляторе, дополнительная разбивка на фейсы после сшивания.

Изменено пользователем andreyholkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
19 часов назад, andreyholkin сказал:

-noise - это шум на уровне вертексов однако, для встряски геома. Я им вообще не пользуюсь. Убивает оригинальность.

На GTA помогало исправить баги фейсов на воде, плюс местами немного повысить fps.

19 часов назад, andreyholkin сказал:

-notess - понимать-понимаю, а что даёт не знаю.

Опять же, на GTA давало гигантский прирост fps. Кстати, в твоих экспериментальных оптимизированных компилях вроде это уже было включено. Впечатление, что по умолчанию геометрия компилится/грузится в игре "дважды", а с этим параметром второй проход убирается. Но нужно больше статистики на разных типах геометрии, а тестить, как обычно, никто не спешит.

Изменено пользователем macron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, macron сказал:

Кстати, в твоих экспериментальных оптимизированных компилях вроде это уже было включено

У меня то было, то не было. По умолчанию я вообще вырезал тесселяцию, что наверно равно ключу.

А на Бардаковских локах беда. 14 часов Болота компилил.

Спойлер

ss_newfake_10-22-24_23-22-56_marsh.md.jp
ss_newfake_10-22-24_23-23-26_marsh.md.jp

Косяк не компилятора, косяк в том что в шапке не написано, что не используйте конвертор Бардака напрямую.

Обратил внимание, что хеми бледновата и хемисфера как то плохо отрабатывает. Может я что не догоняю.

-hemi_bias число – установить смещение позиции луча при запекании хеми (по умолчанию: 0.1, в оригинале: 0.001)

Нужно тестировать на мелкой локации. 14 часов с хеми - это минимум у меня на Болотах.


Дополнено 40 минуты спустя

SkyLoader , ползунка мощи хеми нет? Я бы вывел, сильно не хватает.

                // Trace Light
                //Fvector        PMoved;    PMoved.mad(Pnew, Ldir, 0.001f);
                Fvector        PMoved;    PMoved.mad(Pnew, Ldir, 0.01f); // это я так понимаю и есть hemi_bias ?
                float scale = L->energy*rayTrace(DB, MDL, *L, PMoved, Ldir, 1000.f, skip, bUseFaceDisable);
                C.hemi += scale;

зелёным выделил, тоже бы вывести в консоль с числом (актуально примерно от 500-2000).

А красным, если это не выведено, то вообще обязательно вывести.

Еще может целиком функцию законсолить как второй вариант? И назвать это -xxx :u1F914: 

Спойлер

float rayTrace    (CDB::COLLIDER* DB, CDB::MODEL* MDL, R_Light& L, Fvector& P, Fvector& D, float R, Face* skip, BOOL bUseFaceDisable)
{
    R_ASSERT    (DB);

    // 1. Check cached polygon
    float _u,_v,range;
    bool res = CDB::TestRayTri(P,D,L.tri,_u,_v,range,false);
    if (res) {
        if (range>0 && range<R) return 0;
    }

    // 2. Polygon doesn't pick - real database query
    DB->ray_query    (MDL,P,D,R);

    // 3. Analyze polygons and cache nearest if possible
    if (0==DB->r_count()) {
        return 0.6; //1
        
    } else {
        //return getLastRP_Scale(DB,MDL, L,skip,bUseFaceDisable); //cut

//new
        u32        tris_count    = DB->r_count();
        for (u32 I=0; I<tris_count; I++)
        {
                return 0.2;
        }

        CDB::TRI *        tris_count2    = MDL->get_tris();
        for (CDB::TRI * I=0; I<tris_count2; I++)
        {
                return 0.4;
        }
//new

    }

    return 0.3; //0
    //return 0; //0
}//*/

Может это дико, но это как вариант красоты или хрени по-вашему.

Я в ЧН тестировал, нормально заходит, выглядит как будто автоматом лайтмапы накидало. :u1F601:


Дополнено 42 минуты спустя

Еще меня два момента интересует

Спойлер

void CBuild::PreOptimize()

 // 1 момент
        //if (0==(it%100000)) {
        //    Progress(_sqrt(float(it)/float(lc_global_data()->g_vertices().size())));
        //    Status    ("Processing... (%d verts removed)",Vremoved);
        //}

 

// 2 момент

/* //cut
        // Search similar vertices in hash table
        for (vecVertexIt T=H.begin(); T!=H.end(); T++)
        {
            Vertex *pBase = *T;
            if (pBase->similar(*pTest,g_params().m_weld_distance)) 
            {
                while(pTest->m_adjacents.size())    
                    pTest->m_adjacents.front()->VReplace(pTest, pBase);

                lc_global_data()->destroy_vertex(lc_global_data()->g_vertices()[it]);
                Vremoved            += 1;
                pTest                = NULL;
                break;
            }
        }
*/ //cut

Это можно также в консоль -xxx отправить.

Изменено пользователем andreyholkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

До скольки градусов у вас нагревается процессор во время компиляции?
Вопрос любопытства ради.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, imcrazyhoudini сказал:

До скольки градусов у вас нагревается процессор

Кипит. Скай не сделал поддержку saas sdk, вот и кипит. Пол дня потерял. Аи компилятор родной с родным геомом не дружит. Это правится в пять минут в коде.


	// Load initial map from the Level Editor
	{
		string_path			file_name;
		strconcat			(sizeof(file_name),file_name,name,"build.aimap");
		IReader				*F = FS.r_open(file_name);
		R_ASSERT2			(F, file_name);

		R_ASSERT			(F->open_chunk(E_AIMAP_CHUNK_VERSION));
		u16 version =		F->r_u16();
		R_ASSERT			(version == E_AIMAP_VERSION || version == 1);

		R_ASSERT			(F->open_chunk(E_AIMAP_CHUNK_BOX));
		F->r				(&LevelBB,sizeof(LevelBB));

		R_ASSERT			(F->open_chunk(E_AIMAP_CHUNK_PARAMS));
		F->r				(&g_params,sizeof(g_params));

		R_ASSERT			(F->open_chunk(E_AIMAP_CHUNK_NODES));
		u32					N = F->r_u32();
		R_ASSERT2			(N < MAX_AI_NODES - 1,"Too many nodes!");
		g_nodes.resize		(N);

		hdrNODES			H;
		H.version			= XRAI_CURRENT_VERSION;
		H.count				= N+1; //cut
		//H.count			= g_nodes.size(); //new
		H.size				= g_params.fPatchSize;
		H.size_y			= 1.f; //cut
		//H.size_y		= CalculateHeight(H.aabb); //new
		H.aabb				= LevelBB;
		
		typedef u32 NodeLink;
		for (u32 i=0; i<N; i++) {
			NodeLink			id;
			u16 				pl;
			SNodePositionOld 	_np;
			NodePosition 		np;
///*
			if (version == 1) 
			{
				for (int j = 0; j < 4; ++j) 
				{

					if (strstr(Core.Params, "-sdk07")) // new
					{
						F->r(&id, 3); //07
					}
					else
					{		
						F->r(&id, 4); //saas
					}

					id = id & 0x00ffffff & 0xffffffff;
					if (id == InvalidNode_v1)
						id = InvalidNode;
					g_nodes[i].n[j] = id;
				}
			}
			else {
//*/
				for (int j = 0; j < 4; ++j) {
					F->r(&id, sizeof(NodeLink));
					g_nodes[i].n[j] = id;
				}

			}

			pl				= F->r_u16();
			pvDecompress	(g_nodes[i].Plane.n,pl);
			F->r			(&_np,sizeof(_np));
			CNodePositionConverter(_np,H,np);
			g_nodes[i].Pos	= vertex_position(np,LevelBB,g_params);

			g_nodes[i].Plane.build(g_nodes[i].Pos,g_nodes[i].Plane.n);
		}

		F->close			();

		//if (!strstr(Core.Params,"-keep_temp_files")) //cut
		//	DeleteFile		(file_name);
	}

#define E_AIMAP_VERSION              0x0002 //saas

Изменено пользователем andreyholkin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 29.10.2024 в 22:59, imcrazyhoudini сказал:

До скольки градусов у вас нагревается процессор во время компиляции?

62

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу