вторник, 8 ноября 2011 г.

Философия квода (quad англ. [transcription] ).

Первое, что важно, в использовании квода - он должен быть простым. То есть вызывать как можно меньше вопросов, в идеале не вызывать совсем. Это обеспечивается архитектурой, построенной на интерфейсах, простыми и понятным именованием констант, переменных, интерфейсов, методов и параметров. Разумеется, объектно-ориентированный подход также упрощает понимание. Код квода получается максимально лаконичным, но тем не менее таким же мощным, как и предполагалось.
Второе, что тоже очень важно, необходима возможность использования очень неочевидных функций, как то: изменение фильтрации текстур или режима обработки минусовых UV координат, свободное текстурирование и прочее.
Довольно занятно, что в большей мере, всё это удалось воплотить в той реализации квода, что есть сейчас. Многое еще предстоит, но основное направление уже задано.
Возможно надо было разделить рендер и системные функции. Более того - пугает, что это возможно придется делать. А это будет значить, что код будет поломан. Поэтому это останется до 2.0
Как я уже однажды писал - шейдеры были одной из фич, которые очень хотелось иметь в 2д движке. К сожалению, большинство движков (особенно под Делфи) не имело поддержки шейдеров, или же нарушало первое или второе правило (описаны выше).
Знание DirectX для квода не нужно абсолютно. Единственная вещь, которая может потребоваться - знание HLSL, для написания шейдеров. Однако, шейдеры не являются обязательными к использованию, так что данным аспектом можно пренебречь.

Сейчас в планах дальнейшее усовершенствование основной части и разработка новых модулей. Частицы, ГУИ, создание и управление окном, спрайтовый движок и прочие радости жизни.