![]() |
CreateTexture
Сегодня вдруг выяснил такую неприятную вещь: при создании текстуры напрямую в блитце возникает странный баг с флагами. Можно поставить 2 или 4, а толку ноль - черный цвет остается просто черным.
У меня есть только одна идея по этому поводу. Справка пишет, что для альфа текстур при загрузке по умолчанию используется альфа-канал изображения. И только если его нет используется стандартная схема - чем темнее, тем прозрачнее. Возможно поэтому при создании текстуры черный цвет не делается прозрачным. Вопрос, собственно, такой: можно ли это как-то обойти или придется геморроиться с WritePixelFast? |
Ответ: CreateTexture
При помощи WritePixel[Fast] пиши не только цвет, но и альфу. (нужна видимая точка - 255, невидимая - 0) то есть типа такого ЕСЛИ пиксель чёрный или около того, ТОГДА пишем вместе с цветом ещё и альфу 0, ИНАЧЕ - 255
З.Ы. Там нада это в 16-ричную сис. сч. перевести но это не сложно, сам же пользовался. З.З.Ы. Не юзай WritePixelFast и ReadPixelFast, они не на всех компах работают без глюков, лучше делай обычные WritePixel и ReadPixel. |
Ответ: CreateTexture
Цитата:
|
Ответ: CreateTexture
Я провел эксперимент и скажу что разницы между WritePixelFast(ReadPixelFast) и WritePixel(ReadPixel) нету никакой, главное залочить картинку. При залоченой картинке скорости опеих пар команд одинаковые. Видимо всё отличие только в том что команды без приставки Fast могут и без залочения работать, но медленее. Но с LockBuffer их скорость одинакова.
|
Ответ: CreateTexture
Кстати, подтверждаю, WritePixelFast без причин вылетает на моем компе. O_o
Причем довольно странно: в дебаг режиме на RenderWorld, без дебага после нажатия Esc. Иногда просто выходит из программы почти сразу после старта.даже без ошибки. С WritePixel таких проблем не обнаружилось. |
Ответ: CreateTexture
WritePixelFast - кака
не юзайте, вылетает. И хрен поймешь от чего это зависит. Бывает полгода работает, потом внезапно начинает глючить |
Ответ: CreateTexture
Самое интересное - это то, что если использовать с ReadPixel/WritePixel совместно с LockBuffer/UnlockBuffer, то скорость на глаз, а может и не только, одинаковая с ReadPixelFast/WritePixelFast.:)
|
Ответ: CreateTexture
Ну и чо никто не постанул: http://forum.boolean.name/showpost.p...56&postcount=3
|
Ответ: CreateTexture
WritePixelFast вылетает только тогда, когда параметры выходят за пределы экрана или текстуры.
|
Ответ: CreateTexture
L.D.M.T. наконец-то хоть кто-то открыл нам истину!
в приведённом выше примере фиксится уменьшением верхней границы в циклах на одни пиксель Это ведь ваще "фак мой моск": в половине семплов начало вывода в буфере считается за (0.0) и при этом до размеров, в то время как фактическое значение - (размер-1). Просто часть обработичков игнорируют такое надругательство. |
Ответ: CreateTexture
Если ещё актуально то выяснилось что можно копировать имэйдж в текстуру и с флагом маски, только пустой цвет(маскированый) записать как: А shl 24; где А от 0 до 128.
вот пример: Код:
Graphics3D 800,600,16,1 |
Часовой пояс GMT +4, время: 13:02. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot