|
Texture - Указатель текстуры. |
|
Устанавливает режим смешивания для текстуры.
Режим смешивания текстуры определяет, как текстура смешается с текстурой или полигоном, которые расположены 'ниже' нее. Текстура 0 смешается с полигонами объекта, к которому она применяется. Текстура 1 смешается с текстурой 0. Текстура 2 смешается с текстурой 1. И так далее. Выполняя смешивание, Blitz берет самую "верхнюю" текстуру из списка (с самым большим индексом) и смешивает ее с текстурой, расположенной "ниже" нее, потом получившийся результат снова смешивает с текстурой еще "ниже" , и так далее до текстуры 0, которая смешана с полигонами объекта, к которому применена, а затем объект сам смешивается с остальным миром в зависимости от параметров команды EntityBlend. Каждый из режимов смешивания для текстуры идентичен аналогичным для EntityBlend. В случае мультитекстурирования (если к объекту применяется больше, чем одна текстура) не рекомендуется применять текстуры, которые были загружены с флажком alpha(прозрачная), поскольку это может вызвать непредсказуемые результаты на разных видеокартах. Используйте EntityTexture, чтобы установить индексное число текстуры. Смотрите также : EntityBlend, EntityTexture. |
|
; Пример TextureBlend
; -------------------- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() ; Цвет фона следует устанавливать отличным от цвета объектов CameraClsColor camera,255,0,0 light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() PositionEntity cube,0,0,5 ; Загружаем текстуру tex0=LoadTexture( "media/b3dlogo.jpg" ) tex1=LoadTexture( "media/chorme-2.bmp" ) ; Текстурируем куб EntityTexture cube,tex0,0,0 EntityTexture cube,tex1,0,1 tex0_blend_info$="no texture" tex1_blend_info$="no texture" While Not KeyDown( 1 ) ; Выбираем режим смешивания для текстуры 0 If KeyHit( 11 )=True tex0_blend=tex0_blend+1 If tex0_blend=4 Then tex0_blend=0 If tex0_blend=0 Then tex0_blend_info$="no texture" If tex0_blend=1 Then tex0_blend_info$="no blend" If tex0_blend=2 Then tex0_blend_info$="multiply" If tex0_blend=3 Then tex0_blend_info$="add" EndIf ;Выбираем режим смешивания для текстуры 1 If KeyHit( 2 )=True tex1_blend=tex1_blend+1 If tex1_blend=4 Then tex1_blend=0 If tex1_blend=0 Then tex1_blend_info$="no texture" If tex1_blend=1 Then tex1_blend_info$="no blend" If tex1_blend=2 Then tex1_blend_info$="multiply" If tex1_blend=3 Then tex1_blend_info$="add" EndIf ; Применяем выбранные режимы TextureBlend tex0,tex0_blend TextureBlend tex1,tex1_blend TurnEntity cube,0.1,0.1,0.1 RenderWorld Text 0,0,"Press 0 to change texture 0's blending mode" Text 0,20,"Press 1 to change texture 1's blending mode" Text 0,40,"TextureBlend tex0,"+tex0_blend+" ("+tex0_blend_info$+")" Text 0,60,"TextureBlend tex1,"+tex1_blend+" ("+tex1_blend_info$+")" Flip Wend End |