Проблема с размерами текстур

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

Модератор: Mikle

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 12:53

для подгрузки текстур использую функцию CreateTextureFromFileEx
Код: Выделить всё
d3dx.CreateTextureFromFileEx(d3dDevice, adress, (144 * FileW) \ FileH, 144, 1, 0, D3DFMT_R5G6B5, D3DPOOL_DEFAULT, D3DTEXF_ANISOTROPIC, D3DX_FILTER_NONE, 0, ByVal 0, ByVal 0)

где FileW и FileH реальные размеры картинки..

вывожу текстуру на спрайт Wx144, где W вычисляется чтобы не нарушать пропорции. почему-то текстура отображается так, будто она больше спрайта..
вот скрины для квадратной текстуры (пробовал выставлять три размера.. при значении большем 128х128 все текстуры будто одинаковы. сделал скрин и посмотрел размеры в фотошопе, будто 256х256)
в чем может быть проблема?

причем на некоторых компах это работает как надо..

Добавлено позднее:
кажется что текстуры создаются с размерами степенями двойки (на квадратных текстурах)
У вас нет доступа для просмотра вложений в этом сообщении.

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

Re: Проблема с размерами текстур

Сообщение Mikle » 02.08.2009 (Вс) 18:28

Не все видюшки поддерживают размер текстур, не кратный 2. Но даже те, что поддерживают, не всегда справятся с D3DTEXF_ANISOTROPIC. Попробуй Linear.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 18:30

попробовал все фильтрации.. при "NONE" текстура похоже берется натуральных размеров, при остальных либо не работает, либо то же..
видюшка GeForce 2 MX

Добавлено позднее:
а с размерами - степенями двойки все карты поддердивают?

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

Re: Проблема с размерами текстур

Сообщение Mikle » 02.08.2009 (Вс) 18:40

Да, только чтобы не превышался максимальный размер (есть в капсах).

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 18:43

сейчас на этот комп, на котором не работает поставлю другую карту.. попробую..

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 19:42

попробовал другую карту - то же самое..
еще попробовал в другом проекте подгрузить текстуру при помощи CreateTextureFromFileEx точно также как я писал выше.. размеры задал 100х150.
при выводе на два треугольника все нормально, текстура не искажена и видно что ее разрешение мало.
добавил спрайт 100х150.. текстура на него ложится будто она 128х256..
спрайт так выводил:
Код: Выделить всё
D3DXMatrixTranslation Matr, 50, 50, 0
S1.DrawTransform TexPort2, RECT(0, 0, 150, 300), Matr, &HFFFFFFFF

где S1 - D3DXSprite
Код: Выделить всё
Public Function RECT(left As Single, top As Single, right As Single, bottom As Single) As RECT
RECT.left = left
RECT.top = top
RECT.right = right
RECT.bottom = bottom
End Function

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 20:07

решил проблему так:
Код: Выделить всё
If h > 8 Then
    h2 = 16
    If h > 16 Then
        h2 = 32
        If h > 32 Then
            h2 = 64
            If h > 64 Then
                h2 = 128
                If h > 128 Then
                    h2 = 256
                End If
            End If
        End If
    End If
  Else
    h2 = 8
  End If
 
  S1.Draw Texture, RECTq(0, 0, w2, h2), vec2(w / w2, h / h2), vec2(0, 0), 0, vec2(x, y), &HFFFFFFFF


w и h реальные размеры
w2 и h2 ближайшие большие степени двойки

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Проблема с размерами текстур

Сообщение Debugger » 02.08.2009 (Вс) 20:20

Что-то ты намудрил с кодом.
К тому же, 240 ближе к 256, чем к 128.

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 02.08.2009 (Вс) 20:27

не понял.. да, 240 ближе к 256 чем к 128, но причем тут это?
если я пытаюсь создать текстуру с шириной уже в 129 она создается 256..

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Проблема с размерами текстур

Сообщение Debugger » 02.08.2009 (Вс) 21:07

А, тогда все правильно)

lellel
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 19.12.2007 (Ср) 22:07
Откуда: Долгопрудный

Re: Проблема с размерами текстур

Сообщение lellel » 03.08.2009 (Пн) 21:03

вот только вроде на том компе где я изначально это писал все работало правильно и безм таких ухищрений..
как возможность появится попробую еще раз..


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

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

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

    TopList