Render World и Графический процессор видеокарты
Как пишут в всяких статейках графический процессор держит на себе всю графическую обработку включая построение изображения.
Пруф1: Цитата:
Цитата:
Код:
Repeat И вообще, как на блиц влияет работа графического процессора? Работает ли он при операторе RenderWorld? |
Ответ: Render World и Графический процессор видеокарты
RenderWorld ещё и отсеивает что рисовать с какой камеры, а что не рисовать, ну и общается с GAPI - в общем, цпу работы у него достаточно.
Цитата:
она растеризует треугольники, интерполирует текстуры, обрабатывает каждый пиксель на экране. чего там в блице ещё есть? бленды текстур - тоже на гпу. |
Ответ: Render World и Графический процессор видеокарты
Цитата:
п.с. Вопрос не по теме: HideEntity - освобождает память видеокарты, а FreeEntity - освобождает память и видеокарты и ОЗУ? |
Ответ: Render World и Графический процессор видеокарты
Цитата:
Я считаю что всё идет по порядку И когда ты делаешь renderWorld у тебя у тебя вся система занимается именно обработкой графики, но весь цикл в 17 мс - назвать "Простоем" я не могу ) А на счет hideEntity и freeEntity я думаю ты прав! Сначала я подумал а зачем из видеопамяти удалять hideEntity? а потом подумал а нафига его там держать? )) Так что думаю логично. :-) |
Ответ: Render World и Графический процессор видеокарты
ничего hideentity не убирает из видеопамяти. сами подумайте, вот загрузили мы меш и откопировали его copyentity. один скрыли, что он будет из видопамяти убирать? меш то один.
он просто убирает объект из списка рендерящихся объектов. |
Ответ: Render World и Графический процессор видеокарты
Всё правильно, когда обработана вся логика и выдана команда на формирование кадра, игра не может продолжать дальнейшую обработку пока не будет рассчитан кадр. И процессор в это время обрабатывает другие процессы системы или другие потоки игры если они есть (например музыка обычно играет отдельным потоком).
На самом деле, RenderWorld возвращает управление сразу как отработает его код, а формирование кадра может быть ещё в процессе. Однако Flip1 форсирует ожидание формирования кадра и его вывода на экран. Аналогично работает видеокарта, когда видеокарта в монопольном режиме (игра в фуллскрин), она рендерит только то что получает от игры. Поэтому, когда CPU считает логику GPU отдыхает. Именно поэтому чтобы получить максимальный fps в играх надо чтобы CPU и GPU полностью удовлетворяли потребностям друг друга, чтобы взаимные ожидания были наименьшими. |
Ответ: Render World и Графический процессор видеокарты
А я считал и пока считаю, что все Entity (будь то Меш или его копия) при загрузке ложатся в оперативную память
А те Entity, которые надо рендерить помещаются в видео-память для максимальной скорости рендера СКАЖИТЕ ЕСЛИ НЕ ТАК! |
Ответ: Render World и Графический процессор видеокарты
ЕМНИП в видеопамять помещаются только текстуры
|
Ответ: Render World и Графический процессор видеокарты
геометрия вообще-то тоже - VB/IB.
|
Ответ: Render World и Графический процессор видеокарты
Цитата:
Entity занимает совсем немного места в опреативки и никаким образом не касается видеопамяти. Видеопамять занимает меш. Вся проблема в кривоватой блицовой архитектуре. Когда мы создаем ентити LoadMesh-ом или там CreateCube-ом, то кроме ентити создается и меш. Тогда тратится видеопамять. Когда мы создаем чисто ентити для уже существующего меша (CopyEntity) тогда тратится только совсем чуть-чуть оперативки и совсем не тратится видеопамять. В блице понятия меша и ентити разнесены слабо, что неправильно, я считаю. Хотя для новичков, кончено проще. |
Ответ: Render World и Графический процессор видеокарты
Не слыхал ли кто о библиотеке для обработки некоторых расчетов из главного цикла(те что предназначены для цп) на графическом процессоре для блица? Или возможно наоборот. Подключить свободные ресурсы центрального процессора для помощи в построении графических изображений? п.с. Задело :)
И еще один вопрос не по теме. Есть огромный ландшафт. Его форма хранится в файле и только небольшая часть видимая юзеру сидит в ОЗУ. Как будет рациональнее с точки зрения оптимизации, врубать хайд ентити для всех кусочков что видел юзер (ландшафт аля майнкрафт) или делать полный перерасчет ландшафта в моменты передвижения с чанка на чанк? Просто в блице никак нельзя сделать работу над главным циклом в 2-а потока. Или можно? Была только одна мысль, написать функцию, какая будет подгружать кусочек недогруженного чанка. Что то типа имитации 2-х потоков.... |
Ответ: Render World и Графический процессор видеокарты
Цитата:
чтобы врубать / вырубать хайдентити надо их все сначала загрузить. По памяти просядите, батенька. если ландшафт на самом деле огромный. Да и неправильно это идеологически, пишите на блице казуалки, он для этого создавался. А то некоторые берутся писать всякие там шутеры на тетрисовом двиге, или 3Д ртс :) |
Ответ: Render World и Графический процессор видеокарты
Цитата:
L.D.M.T. уже посоветовал насчет многопоточности. А это как ты говоришь 3Д ртс от казуалок (имхо) отличается лишь сложной оптимизацией. |
Ответ: Render World и Графический процессор видеокарты
Слушайте, а если я буду так делать:
Код:
;-----------------------------LoadEntity------------------------------ |
Ответ: Render World и Графический процессор видеокарты
только Entity удалит. останется ссылка на меш во второй копии.
|
Часовой пояс GMT +4, время: 10:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot