| Author |
Message |
|
|
|
Боюсь что нет. Этот взрыв уже используется в нашем коммерческом проекте tankionline.
|
 |
|
|
Transparent textures it is problem for FlatShadingMaterial and VertexLightMaterial. Unfortunatelly there is no solution.
The engine can't bake a light to texture. You should make it in 3d-editor.
|
 |
|
|
|
На примитивах типа сферы есть разрыв, то есть дублирование вершин на шве. Это из-за того, что UV хранятся в вершинах. При включенном weldSeams расчёт нормалей вершин происходит с учётом этих продублированных вершин.
|
 |
|
|
|
Дело может быть в том, что в calculateVerticesNormals() передано weldSeams = false. А может быть дело в repeat материала.
|
 |
|
|
This is not a bug.
Bounds are calculated by bind pose of skin.
I think, you should just expand the bounds of skin.
For example:
|
 |
|
|
Я бы сделал так:
Не проверял, но должно сработать.
|
 |
|
|
We have been dreaming about dynamic lighting in Alternativa3D for a long time, but different reasons have been distracting us from realizing this feature. Most of all we afraid that lighting system in the engine’s architecture would decrease general performance.
And finally we’ve found effective solution! Now we have dynamic lighting in Alternativa3D. Also we made some upgrades and fixed a few bugs. You can download Alternativa3D 7.7.0 from the official site.
Changelog:
• Added light source classes: AmbientLight, DirectionalLight, OmniLight, SpotLight.
• Added materials with lighting support: VertexLightMaterial, FlatShadingMaterial, AverageLightMaterial, NormalMapMaterial.
• Added environmental reflection material: SphericalEnvironmentMaterial.
• Vertex: added properties normalX, normalY and normalZ.
• Mesh: added methods calculateVerticesNormals(). Method calculateNormals() has been renamed to calculateFacesNormals().
• Added light source debugging.
• Added method clone() for materials.
• Camera3D: added lookAt() method.
• RayIntersectionData: added toString() method.
• AnimationCouple: the type of left and right properties has been changed to AnimationNode.
• ParserCollada: added light source parsing support.
• Sprite3D: fixed bug in intersectRay() method.
• Skin: fixed bugs in methods clone() and attach().
• KDContainer: fixed tree building bug.
|
 |
|
|
Мы уже давно собирались реализовать динамическое освещение в Alternativa3D 7, но по разным причинам откладывали это. Больше всего мы боялись, что система освещения на уровне архитектуры движка сильно снизит общую производительность.
И, наконец, нам удалось найти эффективное решение! Теперь в Alternativa3D 7 есть динамическое освещение. Также мы внесли некоторые улучшения в движок и исправили баги. Скачать Alternativa3D 7.7.0 можно с официального сайта.
Список изменений:
• Добавлены классы источников света: AmbientLight, DirectionalLight, OmniLight, SpotLight.
• Добавлены материалы, реализующие освещение: VertexLightMaterial, FlatShadingMaterial, AverageLightMaterial, NormalMapMaterial.
• Добавлен материал, имитирующий отражение: SphericalEnvironmentMaterial.
• Vertex: добавлены свойства normalX, normalY и normalZ.
• Mesh: добавлен метод calculateVerticesNormals(). Метод calculateNormals() переименован в calculateFacesNormals().
• Реализована возможность отображать источники света в режиме отладки.
• Добавлена возможность клонировать материалы с помощью метода clone().
• Camera3D: добавлен метод lookAt().
• RayIntersectionData: добавлен метод toString().
• AnimationCouple: изменён тип свойств left и right на AnimationNode.
• ParserCollada: реализована поддержка источников света.
• Sprite3D: исправлена ошибка в методе intersectRay().
• Skin: исправлены ошибки в методах clone() и attach().
• KDContainer: исправлена ошибка построения дерева.[/u]
|
 |
|
|
|
Изменили методы get matrix, get concatenatedMatrix, localToGlobal(), globalToLocal(), camera.projectGlobal(), camera.calculateRay() - теперь их можно юзать во время отрисовки. До intersectRay() и прочего пока руки не дошли.
|
 |
|
|
|
Спасибо. Ошибка найдена. Проблема была в отсечении из области видимости, которого не должно происходить при поиске пересечения луча. Новый релиз совсем близко.
|
 |
|
|
1. Не понятно, зависит от количества памяти видеокарты. Важнее сколько в кадре.
2. Зависит от сложности шейдеров. Если простая диффузия, то может быть несколько миллионов.
3. Используется.
4. В каком-то виде да.
5. Максимальный 2048х2048, должны быть кратны степени 2. Можно аплоадить в видюху битмапдаты, а можно юзать специальные подготовленные заранее сжатые текстуры в формате ATF.
6. Есть скелетная анимация. Ограничения количества костей нет - если лимит привышен, происходит автоматическое разбиение на несколько отрисовок. Пример http://www.youtube.com/watch?v=Aein6drd_Hk .
7. Некоторые эффекты отражений, дыма, теней, освещения можно посмотреть на видео http://alternativaplatform.com/ru/showcase/ .
8. Можно по разному.
|
 |
|
|
|
Материал в студию ))
|
 |
|
|
Проблема понятна. Для отрисовки и преобразовательных операций используются одни и те же матрицы. Методы localToGlobal(), get matrix и прочие портят отрисовочные матрицы. Подразумевалось, что они не будут вызываться внутри рендера.
Мы подумаем о том, чтобы отделить отрисовочные матрицы от всего остального.
На момент отрисовки переменные объекта ma, mb, mc и тд - это матрица перевода из локального пространства в камеру. Можно её использовать например для трансформации точки в камеру, а потом у камеры вызвать composeCameraMatrix() (матрицу камеры портить можно) и перевести точку через неё в глобальное пространство.
|
 |
|
|
|
Танковая карта - это KDContainer. Он хорошо подходит для прямоугольных расположенных рядом пропов. Статические объекты (дома, мосты, ландшафт) - это BSP, переданные в createTree(). Танки - это Mesh'и с сортировкой DYNAMIC_BSP, добавленные через addChild(). Деревья - это Sprite3D, добавленные через addChild(). Бонусы и парашюты - это Mesh'и с сортировкой AVERAGE_Z, добавленные через addChild(). KDContainer и SkyBox добавлены в рутовый Object3DContainer.
|
 |
|
|
|
|
 |
|
|