Подсветка спрайта

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Подсветка спрайта

Сообщение DirectXManiac » 30.01.2006 (Пн) 1:54

Помогите пожалуйста! Тут такая проблемка. Надо при наведении мышкой на спрайт сделать его чуть светлее... Ну сделать как кнопку! Я пробовал делать двумя способами но не получалось:
1.Перед рендерингом спрайта: D3DDevice.SetRenderState D3DRS_LIGHTING, 1 и ставить нужнай цвет, если надо подсветить - &HFFFFFFF, если нет, то &HC0C0C0
2.Просто грузил две текстуры одну серого цвета, другую белого(цвет вершин спрайта) и рендерил тот, который надо!
Ни один из способов не работает! Подскажите пожалуйста!
#define ROFL 0xDDDD

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 30.01.2006 (Пн) 5:05

Делают обычно вторым, как ты выражаешься, способом. Способ - работает. :twisted:

ищи ошибку.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 30.01.2006 (Пн) 10:56

nekeda
Делают обычно вторым, как ты выражаешься, способом.

Ты так серьезно считаешь? :lol:
DirectXManiac
Используй TFaktor:
TSS 0, ColorOp, Modulate
TSS 0, ColorArg1, Texture
TSS 0, ColorArg2, TFaktor

Для полной яркости:
SetRenderState, TextureFaktor,&hFFFFFF

Для затемнения:
SetRenderState, TextureFaktor,&h808080

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 30.01.2006 (Пн) 11:29

Mikle
угу, серьёзно считаю 8)

Потому что второй способ универсален абсолютно. Вторую тестуру можно сделать какой угодно, а не только светлее/темнее. А первый способ будет нормально смотрется только в одном случае из 20, а в остальных будет выглядеть халтурой/непрофессионализмом/ленью.

+если по ходу реализации серьёзного проекта, появилась необходимость изменить дизайн (в том числе и способ выделения кнопки) - ты просто рисуешь новую текстуру, а не изменяешь код.

+второй способ допускает лёгкое создание скинов.

Я конечно понимаю, что речь не идёт о серьёзном проекте или грамотном дизайне, но всё равно считаю что даже калькулятор нужно писать правильно.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 30.01.2006 (Пн) 11:46

nekeda
Была поставлена задача:
Надо при наведении мышкой на спрайт сделать его чуть светлее..

И я дал ее оптимальное решение (свет тоже не оптимален, снижает быстродействие).
А применение двух текстур вместо одной вдвое увеличит расход памяти.
+если по ходу реализации серьёзного проекта, появилась необходимость изменить дизайн

Это только ЕСЛИ.
Если бы задача была поставлена так, то это была бы другая задача.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 30.01.2006 (Пн) 14:17

Спасибо! Mikle и спасибо nekeda! Но второй способне работает! А вот способ Mikle как всегда! Работает лучше не придумаешь! 8) 8)
#define ROFL 0xDDDD


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

    TopList