|
3D-программирование Вопросы, касающиеся программирования 3D мира |
04.09.2007, 21:59
|
#1
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
dx7.dll - не включается анизотропная фильтрация.
Доброго времени суток, и, собственно, Сабж.
Подключаю библиотеку, устанавливаю DX7_SetTextureStageState. Эффекта ноль. Фильтрация текстур как была биленейная, так и осталась. Сопоставлял скриншоты попиксельно: разницы нет.
Кто использовал библиотеку, будьте добры, поделитесь догадками по исправлению ситуёвины.
Спасибо заранее.
...
Сразу замечу: в настройках видеодрайвера (в Винде) указано, что тип фильтрации текстур и уровень анизотропной фильтрации выбирается приложением. Так что вопрос, похоже, лежит внутри Блица, а не снаружи.
...
Сразу замечу2:
Код такой, ежели что:
DX7_SetSystemProperties(SystemProperty$("Direct3D7"), SystemProperty$("Direct3DDevice7"), SystemProperty$("DirectDraw7"), SystemProperty$("AppHWND"), SystemProperty$("AppHINSTANCE"))
DX7_SetTextureStageState(D3DTSS_MAXANISOTROPY,8,3)
DX7_SetTextureStageState(D3D_MAGFILTER,8,MAG_ANISOTROPIC)
DX7_SetTextureStageState(D3D_MINFILTER,8,MIN_ANISOTROPIC)
DX7_SetTextureStageState(D3D_MIPFILTER,8,MIP_LINEAR)
DX7_SetMipmapLODBias(bias,8)
|
(Offline)
|
|
04.09.2007, 22:55
|
#2
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Я кода начал юзать сразу заметьл разницу(работает или нет) в тоненкой сетке которая была видна не перед носом, а за километр!
Незнаю что ты неправельно делаеш, но сказать хочу одно ставить фильтрацию нужно на -2(или менше)
|
(Offline)
|
|
04.09.2007, 23:16
|
#3
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Вот тут я делал, всё ок было.
|
(Offline)
|
|
05.09.2007, 09:19
|
#4
|
|
Re: dx7.dll - не включается анизотропная фильтрация.
Разница еще какая есть! =)))
; GetTextureStageState(D3D_TEXTURE_STAGE_STATE_TYPE, index%)
; SetTextureStageState(D3D_TEXTURE_STAGE_STATE_TYPE, index%, value%)
; GetMipmapLODBias(index%) ; B3D Default = 0.0
; SetMipmapLODBias(bias#, index%)
; в обеих Set... командах, индексы от 0 до 7 выбирают
; 1 текстурный стейдж, или 8 для установки всех текстурных стейджей одновременно
; D3D_TEXTURE_STAGE_STATE_TYPE
Const D3D_MAGFILTER = 16 ; D3DTEXTUREMAGFILTER filter To use For magnification
Const D3D_MINFILTER = 17 ; D3DTEXTUREMINFILTER filter To use For minification
Const D3D_MIPFILTER = 18 ; D3DTEXTUREMIPFILTER filter To use between mipmaps during minification
Const D3DTSS_MAXANISOTROPY = 21
Const D3DTSS_TEXCOORDINDEX = 11
; D3DTEXTUREMAGFILTER
Const MAG_POINT = 1
Const MAG_LINEAR = 2 ; B3D default
Const MAG_FLATCUBIC = 3
Const MAG_GAUSSIANCUBIC = 4
Const MAG_ANISOTROPIC = 5
; D3DTEXTUREMINFILTER
Const MIN_POINT = 1
Const MIN_LINEAR = 2 ; B3D default
Const MIN_ANISOTROPIC = 3
; D3DTEXTUREMIPFILTER
Const MIP_NONE = 1
Const MIP_POINT = 2
Const MIP_LINEAR = 3 ; B3D default
Global d3d,dev7,draw7,hwnd,instance
Global anistropicallowed=1
Global texturesinited=0
Function Textureinit() ; можете вызывать после Graphics3D, но если не сделаете вызов, то он произойдет во время первого вызова EnableAnistropic
d3d=SystemProperty$("Direct3D7")
dev7=SystemProperty$("Direct3DDevice7")
draw7=SystemProperty$("DirectDraw7")
hwnd=SystemProperty$("AppHWND")
instance=SystemProperty$("AppHINSTANCE")
anistropicallowed=1
If Not DX7_SetSystemProperties(d3d,dev7,draw7,hwnd,instan ce) Then TextureFilter "",9:anistropicallowed=0:RuntimeError "Something wrong with DX7_sys_prop"
texturesinited=1
Return anistropicallowed
End Function
Function EnableAnistropic(bias#=-0.2) ;ВНИМАНИЕ: вызов очищает текстурные фильтры (color, alpha, mask и т.д.)
If texturesinited=0 Then Textureinit()
If anistropicallowed=1 Then
DX7_SetTextureStageState(D3DTSS_MAXANISOTROPY,8,3)
DX7_SetTextureStageState(D3D_MAGFILTER,8,MAG_ANISO TROPIC)
DX7_SetTextureStageState(D3D_MINFILTER,8,MIN_ANISO TROPIC)
DX7_SetTextureStageState(D3D_MIPFILTER,8,MIP_LINEA R)
DX7_SetMipmapLODBias(bias,
EndIf
End Function
Function EnableAnistropic2(bias#=-0.2) ;ВНИМАНИЕ: вызов очищает текстурные фильтры (color, alpha, mask и т.д.)
If texturesinited=0 Then Textureinit()
If anistropicallowed=1 Then
DX7_SetTextureStageState(D3DTSS_MAXANISOTROPY,0,3)
DX7_SetTextureStageState(D3D_MAGFILTER,0,MAG_ANISO TROPIC)
DX7_SetTextureStageState(D3D_MINFILTER,0,MIN_ANISO TROPIC)
DX7_SetTextureStageState(D3D_MIPFILTER,0,MIP_LINEA R)
DX7_SetMipmapLODBias(bias,0)
EndIf
End Function
Function EnableLinear(bias#=-0.2) ;ВНИМАНИЕ: вызов очищает текстурные фильтры (color, alpha, mask и т.д.)
If texturesinited=0 Then Textureinit()
If anistropicallowed=1 Then
DX7_SetTextureStageState(D3DTSS_MAXANISOTROPY,8,3)
DX7_SetTextureStageState(D3D_MAGFILTER,8,MAG_POINT )
DX7_SetTextureStageState(D3D_MINFILTER,8,MIN_POINT )
DX7_SetTextureStageState(D3D_MIPFILTER,8,MIP_LINEA R)
DX7_SetMipmapLODBias(bias,
EndIf
End Function
|
|
|
|
05.09.2007, 12:35
|
#5
|
Дэвелопер
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений (для 17 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
И в чем же она собственно вырожается ета Разница?
|
(Offline)
|
|
05.09.2007, 13:17
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Ну с анисотропной фильтрацией, ты на расстоянии в киллометр будешь различать что там у тебя трава, а там камень (текстуры), а вот со стандартной биллинейной, у тебя будет просто тупо размыто всё, и ты нифига не различшь, только по цвету. Ты попробуй глянь разницу, с и без, тогда уловишь.
Используя аисотропку, можно отказаться от 2048х2048 или 1024х1024 текстур, используя 512х512 и быть уверенным что на расстоянии эта текстура будет смотреться намного лучше и чётче чем с биллинейной фильтрацией. Да и глянь на сильно повёрнутые трианглы к камере, текстуры на них тоже Очень размыты. Впрочем, попробуй с и без.
|
(Offline)
|
|
05.09.2007, 19:15
|
#7
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Мд-а. Всё таки, ошибок в моём коде нет, но никакой разницы в изображении нет также. Анизотропная фильтрация у меня на ноутбуке не включается. Явно особенность то ли ноутбука, то ли отношений ноутбука с Блицем.
Всё равно спасибо за помощь! )
|
(Offline)
|
|
06.09.2007, 13:40
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Diplomat, добавь пожалуста, что за видео карта там стоит, и какие у неё там приколы. А то малоли ктонибудь столкнёться тоже с этим.
|
(Offline)
|
|
06.09.2007, 14:26
|
#9
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Видеокарта встроенная, Radeon9000IGP. Из приколов- 32Мб видеопамяти с возможностью высасывания обьёмов до 128Мб из памяти оперативной, и аппаратная поддержка ДХ7.
|
(Offline)
|
|
06.09.2007, 22:28
|
#10
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
А что за библиотека вообще?
|
(Offline)
|
|
07.09.2007, 03:23
|
#11
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
dx7. Это вроде возможность писать на чистом ДХе.
|
(Offline)
|
|
07.09.2007, 22:43
|
#12
|
Бывалый
Регистрация: 22.08.2006
Сообщений: 700
Написано 146 полезных сообщений (для 267 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
и где ее достать?
|
(Offline)
|
|
08.09.2007, 03:09
|
#13
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Попроси у Дипломата
|
(Offline)
|
|
08.09.2007, 11:52
|
#14
|
Дэвелопер
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений (для 164 пользователей)
|
Re: dx7.dll - не включается анизотропная фильтрация.
Не знаю почему, но ссылки на разработчика не работают.
Но лежит она во многих местах в Сети. Брать можно, к примеру, отсюда:
http://blitz.pp.ru/forum/attachment.php?s=&postid=29976
P.S. Библиотека не поможет писать на чистом ДХ. Она просто добавляет Блицу несколько приятных возможностей, которые очень не помешали ему и официально.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:26.
|