×
Menu

Coordinate Generation Type

 
Методы генерации направления текстуры.
(скриншоты и примечания выделены в отдельные разделы для удобства чтения)
 
CG_WORLD_PARALLEL - параллельное, поверхности объекта, проецирование текстуры.
Работает в МВ, все прекрасно.
Особенно хорошо использовать в массивах частиц, или при создании правильного ореола!
CG_WORLD_PERSPECTIVE - прямая проекция текстуры на поверхность, полный аналог кинопроектора.
Работает в МВ, все прекрасно.
Наиболее эффектно использовать в массивах частиц для имитации эффекта трассировки луча.
CG_SPHERE_MAP - сферическая проекция. Наиболее частая в использовании.
Работает в МВ, все прекрасно.
Используется в самом широком спектре моделей.
Оружие, броня, активаторы и пр.
Однако в массиве частиц, получаются не столь внушительные эффекты.
 
Следующие два режима, в движке МВ, не работают в полной мере.
Либо забагованы, либо "мы чего-то не знаем"(С) либо в этой версии они и не должны (были еще) работать в принципе.
Т.е. известными средствами мы не можем получить 100% правильный результат.
 
CG_SPECULAR_CUBE_MAP - проекция куба. Дает самые "реалистичные" результаты имитации отражения сцены.
См. кубические карты. Т.е. для работы этого режимы, нужные еще и специально подготовленные текстуры, с которым МВ не дружит -_-
CG_DIFFUSE_CUBE_MAP - тоже кубическая проекция, но должна имитировать поведение диффузионной текстуры.
Т.е. не должна отличаться от поведения обычных текстур.
Фактически не работает.
Т.е. сложно назвать "это" нормальной работой. См. скриншоты в подразделе.
 
Примечание.
В теории эти два режима (SP_ и DF_cube) должны имитировать 100% реалистичное поведение отражения на объекте.
Создавая эффект глубины и объема при использовании специально отрендеренной текстуры.
Изображение оной не должно растягиваться, но должно быть, как бы, привязанным к краям полигона.
К сожалению, в МВ это как-раз и не работает.
Хотя текстура в режиме наложения CG_SPECULAR_CUBE_MAP и получается действительно очень живой и 99% похожей на отражение в зеркале.
Но, это не совсем то, что должно было бы быть.
 
Примечание.
По видимости, Кубические карты только-только закинули в Движок времен Морровинда, но нормальную работу оных подвезли лишь ко времени Gamebryo 1.1.
О чем прямо написано в справке к нему:
Gamebryo 1.1
Это уже 2004ый год! МВ это 2001-2.
При этом беседка не удосужилась обновить игру хотя бы до 4.2 версии, куда завезли много чего интересного...

 Выдержка из оригинальной справки. (NDL Gamebryo 1.1)
 
Supported Texture Coordinate Generation Modes
Gamebryo supports the following texture coordinate generation modes.
Note that all texture coordinate generation modes are declared in the scope of NiTextureEffect, and the names must be qualified as such.
Generation Mode
Description
WORLD_PARALLEL
Texture coordinates are generated for each affected object by transforming the world-space vertex positions (X, Y, Z) by the effect's world projection matrix, adding the effect's world projection translation, and using the resulting X coordinate as U and Y as V. In general, this mode forms a parallel projection of the object.
WORLD_PERSPECTIVE
Texture coordinates are generated for each affected object by transforming the world-space vertex positions (X, Y, Z) by the effect's world projection matrix, adding the effect's world projection translation, and using the resulting X/Z coordinate as U and Y/Z as V. In general, this mode forms a perspective projection of the object.
SPHERE_MAP
Texture coordinates are generated for each affected object by transforming the world-space reflection vectors directly into the texture as a sphere map – this capability is detailed in the Texturing manual, but is generally used for environment mapping.
DIFFUSE_CUBE_MAP
Texture coordinates are generated for each affected object by transforming the world-space object-normal vectors directly into the texture as a cube map – this capability is detailed in the Texturing manual, but is generally used for diffuse environment mapping and projected lights. This mode is only supported for NiRenderedCubeMap- and NiSourceCubeMap-based NiTextureEffect objects on hardware that supports cube mapping.
т.е. не работает это как надо, в силу ранней версии движка.
SPECULAR_CUBE_MAP
Texture coordinates are generated for each affected object by transforming the world-space reflection vectors directly into the texture as a cube map – this capability is detailed in the Texturing manual, but is generally used for specular environment mapping and projected lights. This mode is only supported for NiRenderedCubeMap- and NiSourceCubeMap -based NiTextureEffect objects on hardware that supports cube mapping.
 
Хрчмд вовсе писал, что это УДАЧА, что хоть что-то нормально работает!
 
· DIFFUSE_CUBE_MAP: The world-space-object normal vectors are supplied as inputs to an affine transformation whose result is a set of 3D texture coordinates. These texture coordinates are only useful with Cube Maps, which require 3D vectors that represent the direction to be looked up in the Cube Map. Because the results are based on the normal vectors, the results tend to appear more diffuse than specular. Most often, this mode is used with a projected light Cube Map that represents the diffuse lighting in a scene.
 
· SPECULAR_CUBE_MAP: The world-space-object reflection vectors are supplied as inputs to an affine transformation whose result is a set of 3D texture coordinates. These texture coordinates are only useful with Cube Maps, which require 3D vectors that represent the direction to be looked up in the Cube Map. Because the results are based on the reflection vectors, the results tend to appear more specular than diffuse. Most often, this mode is used with an environment map Cube Map that represents the specular lighting in a scene.
 
Подробнее относительно Кубического маппинга см. здесь.