Вы можете столкнуться со строгим кодом ошибки, говорящим об ошибке 153, неуказанной вниз, т.е. существует бесчисленное множество способов решить эту проблему, и это то, над чем мы сейчас работаем.
Все разработчики, внедряющие решения в реальном времени с использованием 3D-графики, беспокоятся об оптимизации производительности. В этом разделе содержатся инструкции о том, как получить максимальную отдачу от вашего кода.
Наведите порядок в магазине, когда это необходимо.
Сведите к минимуму изменения состояния и свяжите другие изменения состояния.
Используйте текстуры, которые должны быть сглажены.
Нарисуйте объекты вашей сцены спереди назад.
Вместо рукавов используйте треугольные полосы. Для наилучшей производительности кэша хранения вершин расставьте полосы, чтобы заработать деньги за продажу вершин кругов как можно скорее.
Устранение связанных специальных эффектов, требующих большего количества системных ресурсов.
Постоянно проверяйте производительность вашего последнего приложения.
Свернуть буфер вершин.
Используйте фиксированные буферы, когда это возможно.
Используйте больший набор буферов вершин для каждого FVF для статических физических объектов вместо одного объекта.
Если ваше приложение требует произвольной загрузки вершин в память AGP, выберите экстент формата вершины из числа, кратного 36 байтам. Если далеко, выберите меньший подходящий размер.
Рисовать с помощью индексированных примитивов. Вероятно, это, безусловно, обеспечит более эффективное самодельное кэширование вершин.
Если файл барьера глубины содержит канал трафарета, постоянно обновляйте трубки глубины и трафарета одновременно. ! !
По возможности комбинируйте инструкции шейдера и продукт данных. Например:
// Вместо этого просто умножьте и сложите, просто используйте данные// относительно объявлений:сумасшедший r2, r1, v0, c0движение oD0, r2// Объедините эти два объявления, потому что это ограничивает основной элемент// дополнительная копия вместе с соединением.сумасшедший oD0, r1, v0, c0код> пред>
Вы устали от медленной работы компьютера? Он пронизан вирусами и вредоносными программами? Не бойся, друг мой, Fortect здесь, чтобы спасти положение! Этот мощный инструмент предназначен для диагностики и устранения всевозможных проблем с Windows, а также для повышения производительности, оптимизации памяти и поддержания вашего ПК в рабочем состоянии. Так что не ждите больше - скачайте Fortect сегодня!
Создание надежной базы данных, связанной с помощью объектов в вашем мире, часто буквально является ключом к высокой производительности Direct3D. Это более значительные улучшения по сравнению с экранированием или аппаратным обеспечением.
Вы должны спроектировать наименьшее количество полигонов, указывающих на человека, с которым может справиться человек. Создайте низкополигональный дизайн, предварительно активировав низкополигональные проекты. По возможности добавляйте полигоны, не влияя на производительность последующих процессов разработки. Помните, что те полигоны, которые вы не рисуете, в настоящее время являются самыми быстрыми.
Примитивы стека
Чтобы добиться наилучшего отображения рендеринга при cДля сохранения функциональности, попробуйте провести задание в стеках с примитивами и не забудьте свести количество улучшений состояния рендеринга к минимуму. Например, если у вас есть другой объект с текстурами, сначала сгруппируйте все, как треугольники, используя разные текстуры, а затем смешайте состояние, необходимое для изменения моей композиции на них. Затем сгруппируйте каждый треугольник в соответствии с включением второй текстуры. Базовая аппаратная поддержка Direct3D — это известные стеки состояния рендеринга или массивы примитивов на уровне аппаратной абстракции ПК (HAL). Чем успешнее сложены квитанции, тем больше минут HAL выполняется во время выполнения.
Советы по освещению
Поскольку освещение увеличивает стоимость вершины для каждого доставленного изображения, вы можете значительно улучшить производительность, полностью понимая, как использовать их в своем приложении. Большинство сервисных советов вытекает из принципа: «Быстрый код в дополнение к простому коду не имеет абсолютно никакого названия».
<ул>
Используйте как можно меньше источников света. Чтобы убрать, измените размер источника света на обычный, например, добавьте немного окружающего света, добавив новое место для освещения.
Направленные источники света по-прежнему более эффективны, чем прожекторы или блики. С направленными источниками света направление, в котором вы видите свет, фиксировано и, конечно же, его не нужно рассчитывать практически для каждой вершины.
Прожекторы могут быть более опытными, чем прожекторы, потому что катушку света в саду можно очень быстро рассчитать. Эффективность прожекторов зависит от того, насколько активно ваша сцена освещена моим прожектором.
Используйте возможность обрезки, чтобы ограничить освещение основными частями сцены, которую вам действительно нужно осветить. Все типы источников света гаснут довольно рано, когда находятся на близком расстоянии.
Зеркало явно подчеркивает двойную стоимость собственного света. Используйте их только тогда, когда вам нужны эти животные. Установите состояние рендеринга для d3drs_specularenable на 0, значение по умолчанию, если это полезно. При определении материалов вы должны установить значение мощности отражения равным 10, чтобы отключить зеркальные отражения из-за этого. материал; установки реального зеркального цвета на 0,0,0 недостаточно.
Размер текстуры
Производительность наложения текстур сильно зависит от скорости памяти. Существует множество способов повысить производительность кэширования текстур вашего приложения.
<ул>
Держите текстуры маленькими. Чем меньше порядок, тем больше вероятность того, что каждый из них будет сохранен во вторичном кэше основного процессора.
На самом деле не меняйте дизайн для каждого примитива. Попытайтесь получить собранные полигоны, используя порядок, используемый потребителями.
По возможности используйте квадратные текстуры. Каждая, включая текстуры 256x256, является самой гладкой. Например, если ваше приложение создает текстуры размером 128x128, постарайтесь сделать так, чтобы они наверняка использовали ту же палитру, что и все элементы важной текстуры 256x256. Этот план также сокращает количество обмена текстурами. Конечно, вы не должны использовать контекст 256x256, если ваше приложение не ожидает, что количество текстур, потому что, как упоминалось ранее, структура должна быть как можно более молодой.