TextureBlend Texture, Blend

Параметры

Texture - Указатель текстуры.
Blend - Режим смешивания для текстуры.

0: Не смешивать
1: Не смешивать или прозрачная(если текстура загружена с флажком alpha - не рекомендуется для мультитекстурирования - смотри ниже)
2: Multiply - умножение (по умолчанию)
3: Add -сложение
4: Dot3
5: Multiply 2

Описание

Устанавливает режим смешивания для текстуры.

Режим смешивания текстуры определяет, как текстура смешается с текстурой или полигоном, которые расположены 'ниже' нее. Текстура 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

Главная страница

Нажмите сюда, чтобы увидеть последнюю версию этой страницы в интернете