Навигация
Главная
Новости
Скачать
Шаблоны сайтов
Партнеры

Графика
Adobe Photoshop

Программирование
Теория алгоритмов
Code Snippets
Все о PHP
Visual C++
WIN32 API
Delphi
ASP

Java
VBScript
CGI
VRML
PERL
HTML
XML

Сети
Cisco
IP-сети
Сетевые термины

IT
UNIX-системы
Хостинг

Операционные системы
Windows
Linux

Поисковая оптимизация
Основы SEO
Мастер-класс SEO
Анализ трафика
Google AdSense

В перерыве
Интересное
Поиск работы
Немного юмора
Материалы
Публикации


RSS / РСС
.
Минутку внимания!
Direct3dX - Текстурирование
Следуя моим урокам, вы уже научились создавать треугольник. Значит, вы уже можете создавать объекты. Но сами цветные объекты выглядят немного некрасиво, лучше бы их затекстурировать. Для этого вам надо во-первых изменить теп точки, добавить в нее текстурные координаты:

struct CUSTOMVERTEX 
{
D3DXVECTOR3 pos;
float diffuse;
float tu, tv;
};

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE|D3DFVF_TEX1)

Теперь tu и tv –текстурные координаты вершины. Внимание: не забудьте поменять содержание и размер структуры, содержащей параметры точек, а то будут глюки и работать ничего не будет. Но теперь вам надо создать саму текстуру. Для этого вы должны найти функцию InitApp() и добавит туда:

LPDIRECT3DTEXTURE8 g_pTexture; // в начало файла 
D3DXCreateTextureFile( g_pd3dDevice, "Texname.bmp", &g_pTexture );

Теперь вы загрузили свой текстуру как g_pTexture. Дпльше вам надо перед прорисовкой указать, чтобы она использовалась при рендеринге. Найдите Render() и вставьте перед DrawPrimitive следуюшее:

g_pd3dDevice->SetTexture( 0, g_pTexture );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE );

Здесь SetTexture задает текущюю текстуру, а SetTextureStageState – ее параметры. Теперь после рендеринга вы увидите текстурированный объект.

P.S. Текстурные координаты находятся в пределах от 0 до 1. Если координата больше 1 и, например, равна 2, то текстура будет наложена 2 раза.


Для наших любимых посетителей:
Мы рекомендуем вам ознакомиться со следующими материалами на тему:
Информация для интересующихся веб-дизайном и программированием:
Right one

Online from 2006-2008 #We are the CoDeRs! Наши статьи и новости можно свободно перепечатывать при указании обратной ссылки на источник Связь с админом