|
width - ширина текстуры
height - высота текстуры flags (не обязательно) - дополнительные флаги: 1: Color - цветная (по умолчанию) 2: Alpha - прозрачная 4: Masked - маскированная 8: Mipmapped - сглаживание на расстоянии 16: Clamp U -ограничить текстуру по координате U 32: Clamp V - ограничить текстуру по координате V 64: Spherical environment map - сферическая карта окружения 128: Cubic environment map - кубическая карта окружения 256: Store texture in vram - сохранять текстуру в видеопамяти 512: Force the use of high color textures - улучшенная обработка многоцветных текстур frames (не обязательно) - сколько кадров текстура будет иметь. По умолчанию 1. |
|
Создает текстуру и возвращает ее указатель. Ширина и высота - размер текстуры. Заметьте, что фактический размер текстуры может отличаться от ширины и высоты, которую требуют различные типы видеоплат. Дополнительный параметр флажков позволяет Вам применять определенные эффекты к текстуре. Флажки могут быть сложены, чтобы объединить два или больше эффекта, например 3 (1+2) = цветная прозрачная текстура. Здесь еще некоторые детали использования флажков: 1: Color(цвет) - текстура в полном цвете (без изменений). 2: Alpha(прозрачность) - карта прозрачности. Если изображение будет содержать (будет использован флаг 2) альфа-карту, то это будет использоваться, чтобы сделать определенные области текстуры прозрачными. Иначе, цветовая карта будет использоваться как альфа-карта. В альфа-картах, темные области всегда имеют высокую прозрачность, светлые области имеют низкую прозрачность. 4: Masked(маскированная) - все области текстуры, имеющие цвет 0,0,0(черный), не будут отображаться. 8: Mipmapped - чем дальше от камеры, тем меньше детализация текстуры. Размывает текстуру на расстоянии. 16: Clamp U - Любая часть текстуры, которая выходит за координаты U 0-1, не будет отображаться. Предотвращает обертывание текстуры вокруг объекта. 32: Clamp V - Любая часть текстуры, которая выходит за координаты V 0-1, не будет отображаться. Предотвращает обертывание текстуры вокруг объекта. 64: Spherical environment map(сферическая карта) - форма отображения среды. Это работает так: берется единственное изображение, и затем накладывается на трехмерный объект таким способом, что изображение, кажется, отражено в этом объекте. Когда используется с текстурой, на которой есть световые эффекты, то можно получить такие объекты как, например, чайник с солнечными бликами. 128: Cubic environment map(кубическая карта) - форма отображения среды. Похоже на сферическую, но использует шесть изображений, где каждое представляет собой сторону воображаемого куба и дает изображение, которое совершенно точно отражает окружение объекта. При создании кубической карты среды командой CreateTexture, размеры текстуры должны быть двойными. См. команду SetCubeFace. Загружая кубические карты сред в Blitz с использованием LoadTexture, все шесть изображений, изображающие шесть сторон куба, должны содержаться в пределах одной текстуры, и расположены в горизонтальной полосе в следующем порядке - левое, переднее, правое, заднее, верхнее, нижнее. Изображения должны быть двойного размера. Пожалуйста отметьте, что некоторые старые видеоплаты не поддерживают кубическое отображение. Чтобы узнавать это, используйте команду GfxDriverCaps3D. 256: Store texture in vram(текстура в vram). При некоторых обстоятельствах, это делает работу с текстурами намного быстрее, так как используется память видеокарты, которая работает быстрее. Можно использовать для динамических текстур - то есть используя CopyRect между двумя текстурами. При наложении с кубической картой в реальном времени, предпочтительно использовать этот флажок. 512: Force the use of high color textures - использование многоцветных текстур в графических режимах с меньшей глубиной цвета. Это полезно, когда Вы находитесь в 16-разрядном режиме, и желаете создать/загрузить текстуры с флагом alpha (прозрачность) - это должно дать лучшие результаты. Как только Вы создали текстуру, используйте SetBuffer TextureBuffer, чтобы перейти к роботе с ней. Однако, чтобы отобразить 2D-графику на текстуре, обычно лучше загрузить готовое изображение и затем копировать его к texturebuffer. Чтобы отображать 3D-объекты на текстуре, Вам нужно будет скопировать backbuffer в texturebuffer.
|
|
; Пример CreateTexture ; --------------------- Graphics3D 640,480 SetBuffer BackBuffer() camera=CreateCamera() light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() PositionEntity cube,0,0,5 ;Создаем текстуру размером 256x256 tex=CreateTexture( 256,256 ) ; Set buffer - texture buffer SetBuffer TextureBuffer( tex ) ; Очищаем texture buffer с белым цветом ClsColor 255,255,255 Cls ; Пишем текст на текстуре font=LoadFont( "arial",24 ) SetFont font Color 0,0,0 Text 0,0,"This texture" Text 0,40,"was created using" : Color 0,0,255 Text 0,80,"CreateTexture()" : Color 0,0,0 Text 0,120,"and drawn to using" : Color 0,0,255 Text 0,160,"SetBuffer TextureBuffer()" ; Текстурируем куб EntityTexture cube,tex ; Set buffer - backbuffer SetBuffer BackBuffer() While Not KeyDown( 1 ) pitch#=0 yaw#=0 roll#=0 If KeyDown( 208 )=True Then pitch#=-1 If KeyDown( 200 )=True Then pitch#=1 If KeyDown( 203 )=True Then yaw#=-1 If KeyDown( 205 )=True Then yaw#=1 If KeyDown( 45 )=True Then roll#=-1 If KeyDown( 44 )=True Then roll#=1 TurnEntity cube,pitch#,yaw#,roll# RenderWorld Flip Wend End |