GLScene/ru
From Free Pascal wiki
Jump to navigationJump to searchAbout
GLScene это основанная на OpenGL 3D библиотека. Изначально была написана для Delphi, но теперь спокойно работает с C++ Builder, Kylix, Delphi и Lazarus.
Основные карактеристики :
Описание сцены
- иерархическая структура объектов с множеством объектов (количество зависит от ОЗУ) и простотой расширения
- интерактивное управление сценой (numerous Delphi experts)
- простые функции вращения и перемещения для каждого объекта
- предопределенные объекты (все стандартные от куба до чайника и спрайтов), легко расширяемые
- структурные объекты (каркасный куб, прокси-объект) для управления композитными объектами
- процедурные объекты (heightfield, вращение твердых тел, трубы, tesselators...)
- поддержка 2D и 1D объектов (спрайты, линии с поддержкой сплайнов) полностью интегрирована
- HUD-объекты (спратый визуализированные в 2D координатах)
- утилитные объекты (сетки, небо, стрелки...)
- поддержка классов для прямого доступа OpenGL
- объекты камеры и света могут быть испольщованы в клюбом месте иерархии объектов сцены
- поведенческие объекты могут быть привязаны к объектам для их анимации с возможностью расщирения
- специальные эффекты на объект (до/после визуализации объекта и сцены), с возможностью простого расширения
- поддержка систем частиц, любые объекты или структуры объектов могут выступать в роли частиц
- импорт 3D Studio файлов с автоматическим вычислением векторов нормалей (using the given *smoothing groups of the file) и текстурных координат
- поддержка других форматов импорта: OBJ/OBJF, SMD, MD2, STL, TIN, PLY
Материалы
- easy to use, optimized, material object
- material library to share and reuse materials
- ambient, diffuse, emission, specular and shininess support
- support of blending modes (transparency, additive...)
- alpha-channel auto-generation
- support for OpenGL texture formats, including compressed ones (DXT, S3TC etc.)
- generic plug-in shaders support
- High-level Cg shaders support classes
- polymorphic image support for texturing (allows many formats as well as procedural textures), easily extendable
- more than 150 predefined colors like clrCornflowerBlue or clrCoolCopper (easily extendable) *in addition to standard colors and direct RGBA specifications
- easily to use texture movement and scaling properties, independently from texture coordinates
- 32 bits Bitmap support class
Rendering
- automatically uses the hardware OpenGL driver if available
- a well working camera model using focal length and targeting
- multiple viewers for one or more scenes, easy change of view through camera selection
- fog and depth-of-view support
- render to a file, a bitmap or to the printer in any color and pixel resolution
- full screen support with dynamic resolution changes
- reflections and mirror effects
- dynamic shadow casting
- high-performance scene-wide transparent particles system support
- automatic frustrum culling (hierarchical or per-object)
Animation
- propagation of time progression events
- skeletal animation (multiple bones per vertex)
- frame interpolation and morph targets
- easily extendable Behaviours
- dynamic physics : inertia, acceleration, damping and force application
- automatic, realtime scene cadenceing
Interface
- easy-to-use functions to determine picked objects
- helper functions for camera movements
- helper functions for picked object's translation
- helper functions for converting between screen and world coordinates, raycasting
Utilities
- optimized geometry functions and utilities (vector, quaternion and matrix...)
- cubic spline support functions and class
- mesh manipulation and optimization (stripification, vertex-cache awareness, etc.)
- component to make full-featured screen-saver in a few clicks
- precise frame speed determination
- asynchronous timer (multi-threaded)
- joystick support
- asynchronous keyboard access, keymap support