forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Xors3D (http://forum.boolean.name/forumdisplay.php?f=126)
-   -   Radeon 9600 pro vs. Refraction Shader (http://forum.boolean.name/showthread.php?t=13705)

Colossus 12.11.2010 14:04

Radeon 9600 pro vs. Refraction Shader
 
Стал тестить семпл с рефрактом - не пашет :( дело в видюхе?

подробное инфо:

Radeon 9600 pro
DirectX DirectX 9, Shader 2.0
Mem 256 mb (128 bit)
GPU 400 MHz

Что за фигня не знаю...:4to:

Randomize 12.11.2010 14:05

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Код? Скрин?

Colossus 12.11.2010 14:10

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Прилагаю:

Код из стокового сепла "Refract"
Код:

;====================================
; mSL (mini Shader Library)
;
;        Refraction
;
; Author: MoKa (Maxim Miheyev)
; Email: [email protected]
; Visit: xors3d.com
;====================================



;====================================
Include "Xors3D.bb"
;====================================


;====================================
; Window
xGraphics3D 800,600,32,0,1
xSetTextureFiltering TF_ANISOTROPIC
SeedRnd MilliSecs()
;====================================


;====================================
; Font
Local Font%=xLoadFont("Tahoma",10)
xSetFont Font
;====================================


;====================================
; Varriables
Global mXSp%,mYSp%
Global IKdQ%,IKdW%,IKdE%,IKdA%,IKdS%,IKdD%
Global IKhF1%,EffRefractionNM%=True
;====================================


;====================================
; Camera
Global gCamera%=xCreateCamera()
xCameraZoom gCamera,.8
xCameraClsColor gCamera,0,0,0
xRotateEntity gCamera,-20,45,0
xMoveEntity gCamera,0,10,-100
xCameraRange gCamera,1,6000
;====================================


;====================================
; SkyBox
Global SkyBox%=mLoadSkyBox%("..\Media\SkyBox\Sky1")
xPositionMesh SkyBox,0,1,0
xScaleEntity SkyBox,3000,1500,3000
;====================================


;====================================
; Shader
Local tShader%=xLoadFXFile("..\..\Materials\Refraction.fx")
;====================================


;====================================
; Model
Local tModel%=xLoadMesh("..\Media\HellKnight.b3d")
xUpdateNormals tModel

Local tTextureNormal%=xLoadTexture("..\Media\HellKnight_Normal.jpg")
Local tTextureScreen%=xCreateTexture(256,192)

xSetEntityEffect tModel,tShader
xSetEffectTechnique tModel,"RefractionNM"
xSetEffectMatrixSemantic tModel,"MatWorldViewProj",WORLDVIEWPROJ
xSetEffectMatrixSemantic tModel,"MatWorld",WORLD
;                Shader Varriables
xSetEffectTexture tModel,        "tNormal",tTextureNormal
xSetEffectTexture tModel,        "tScreen",tTextureScreen
xSetEffectFloat tModel,                "FallOffInt",.2
xSetEffectVector tModel,        "FallOffClr",0,.6,.8
xSetEffectFloat tModel,                "FallOffSoft",4
xSetEffectFloat tModel,                "Refract",.1
;====================================





;====================================
; Main Cycle
xMoveMouse 400,300

Repeat
               
                UpdateInput
                UpdateCamera gCamera,.1,1
               
                ;====================================
                xTurnEntity tModel,0,.2,0
               
                If IKhF1
                        EffRefractionNM=Not EffRefractionNM
                        If EffRefractionNM
                                xSetEffectTechnique tModel,"RefractionNM"
                        Else
                                xSetEffectTechnique tModel,"Refraction"
                        EndIf
                EndIf
                ;====================================
               
                If xKeyHit(KEY_ESCAPE) End
       
        ;====================================
        ; Render Refraction
        xHideEntity tModel
        xCameraViewport gCamera,0,0,256,192
        xSetBuffer xTextureBuffer(tTextureScreen)
        xRenderWorld
        xSetBuffer xBackBuffer()
        xCameraViewport gCamera,0,0,800,600
        xShowEntity tModel
        ;====================================
        ; Setting Parameters
        xSetEffectVector tModel,        "PosCamera",xEntityX(gCamera),xEntityY(gCamera),xEntityZ(gCamera)
        ;====================================
        xRenderWorld
        ;====================================
       
       
        ;====================================
        xText 10,10,"TrisRendered: "+xTrisRendered()
        xText 10,25,"FPS: "+xGetFPS()
        ;====================================
        If EffRefractionNM
                xText 10,575,"Press F1 to Change Refraction Mode to Simple"
        Else
                xText 10,575,"Press F1 to Change Refraction Mode to Normal Mapped"
        EndIf
        ;====================================
        xFlip
Forever
;====================================






;====================================
; Functions
Function UpdateInput()
        xMoveMouse 400,300
        mXSp=xMouseXSpeed() mYSp=xMouseYSpeed()
        IKdQ=xKeyDown(KEY_Q) IKdW=xKeyDown(KEY_W)
        IKdE=xKeyDown(KEY_E) IKdA=xKeyDown(KEY_A)
        IKdS=xKeyDown(KEY_S) IKdD=xKeyDown(KEY_D)
        IKhF1=xKeyHit(KEY_F1)
End Function

Function UpdateCamera(Camera%,ViewSensivity#,MoveSensivity#)
        Local CamP#=xEntityPitch(gCamera)+mYSp*ViewSensivity
        If Abs(CamP)>80 CamP=80*Sgn(CamP)
        xTurnEntity Camera,0,-mXSp*ViewSensivity,0
        xRotateEntity Camera,CamP,xEntityYaw(gCamera),0
       
        xMoveEntity Camera,(IKdD-IKdA)*MoveSensivity,(IKdE-IKdQ)*MoveSensivity,(IKdW-IKdS)*MoveSensivity
End Function

Function mLoadSkyBox%(Dir$,Typ$="jpg")
        Local Mesh%=xCreateMesh()
        Local Brush%,Texture%,Surf%,v0%,v1%,v2%,v3%
       
        ; Left
        If FileType(Dir+"\"+"left."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"left."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf,-1, 1,-1,0,0)
                v1=xAddVertex(Surf,-1, 1, 1,1,0)
                v2=xAddVertex(Surf,-1,-1,-1,0,1)
                v3=xAddVertex(Surf,-1,-1, 1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
        ; Front
        If FileType(Dir+"\"+"front."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"front."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf,-1, 1,1,0,0)
                v1=xAddVertex(Surf, 1, 1,1,1,0)
                v2=xAddVertex(Surf,-1,-1,1,0,1)
                v3=xAddVertex(Surf, 1,-1,1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
        ; Right
        If FileType(Dir+"\"+"right."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"right."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf,1, 1, 1,0,0)
                v1=xAddVertex(Surf,1, 1,-1,1,0)
                v2=xAddVertex(Surf,1,-1, 1,0,1)
                v3=xAddVertex(Surf,1,-1,-1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
        ; Back
        If FileType(Dir+"\"+"back."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"back."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf, 1, 1,-1,0,0)
                v1=xAddVertex(Surf,-1, 1,-1,1,0)
                v2=xAddVertex(Surf, 1,-1,-1,0,1)
                v3=xAddVertex(Surf,-1,-1,-1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
        ; Bottom
        If FileType(Dir+"\"+"bottom."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"bottom."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf,-1,-1, 1,0,0)
                v1=xAddVertex(Surf, 1,-1, 1,1,0)
                v2=xAddVertex(Surf,-1,-1,-1,0,1)
                v3=xAddVertex(Surf, 1,-1,-1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
        ; Top
        If FileType(Dir+"\"+"top."+Typ)<>0
                Texture=xLoadTexture(Dir+"\"+"top."+Typ,49)
                Brush=xCreateBrush()
                xBrushTexture Brush,Texture
                Surf=xCreateSurface(Mesh,Brush)
                v0=xAddVertex(Surf,-1, 1, 1,0,0)
                v1=xAddVertex(Surf,-1, 1,-1,1,0)
                v2=xAddVertex(Surf, 1, 1, 1,0,1)
                v3=xAddVertex(Surf, 1, 1,-1,1,1)
                xAddTriangle Surf,v2,v1,v0
                xAddTriangle Surf,v1,v2,v3
        EndIf
       
        xEntityFX Mesh,1+8
        xFlipMesh Mesh
        xUpdateNormals Mesh
       
        Return Mesh
End Function
;====================================

Скрин:



Примечание: Сборка Xors3D последняя 628

.Squid 12.11.2010 15:50

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Смысл приводить код приложения, если вся соль в шейдере?
R300 поддерживает СМ2.0. А теперь глянь на объявление техник в шейдере.
UPD: а еще иногда полезно включать лог.

maxturbo 12.11.2010 15:50

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Цитата:

Сообщение от Colossus (Сообщение 168276)
Стал тестить семпл с рефрактом - не пашет :( дело в видюхе?

подробное инфо:

Radeon 9600 pro
DirectX DirectX 9, Shader 2.0
Mem 256 mb (128 bit)
GPU 400 MHz

Что за фигня не знаю...:4to:

А что за ошибка то хоть?

Colossus 12.11.2010 17:21

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Цитата:

А что за ошибка то хоть?
на скрине все прекрасно видно, ога

UPD: Сквид, не подскажешь путь решения проблемы? или она не разрешима? ну я имею в виду кроме замены видюхи )) понимаю что это УГ...

.Squid 12.11.2010 17:53

Ответ: Radeon 9600 pro vs. Refraction Shader
 
ТрОеЧкИ нА дВоЕчКи ПоМеНяЙ.

moka 12.11.2010 18:20

Ответ: Radeon 9600 pro vs. Refraction Shader
 
В коде шейдера, в Technique..

Colossus 12.11.2010 19:11

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Спасибо парни, помогло)

UPD: теперь хоть буду знать как решить проблему в сл раз ))

viper86 15.11.2010 15:47

Ответ: Radeon 9600 pro vs. Refraction Shader
 
Цитата:

Сообщение от Colossus (Сообщение 168339)
Спасибо парни, помогло)

UPD: теперь хоть буду знать как решить проблему в сл раз ))

Но не любой шейдер переживёт подобную замену. Читай ограничения:

Цитата:

Для вершинных шейдеров доступны следующие шейдерные модели:

vs_1_1 – Первая аппаратно поддерживаемая версия шейдеров. Накла-дывает определенные ограничения: 128 инструкций, отсутствие дина-мического ветвления, нельзя использовать выборку из текстур в вер-шинном шейдере, нет поддержки аппаратного инстансинга.

vs_2_0 – Накладывает определенные ограничения: 256 инструкций, отсутствие динамического ветвления, нельзя использовать выборку из текстур в вершинном шейдере, нет поддержки аппаратного инстансин-га.

vs_2_x – Для каждого вендора эта версия является специфичной, по-этому нельзя однозначно говорить о ее ограничениях

vs_3_0 – Накладывает определенные ограничения: 512 инструкций, поддерживает динамические ветвления и выборку из текстур в вер-шинном шейдере (максимум 4 текстуры).

Для пиксельных шейдеров доступны следующие шейдерные модели:

ps_1_1 – Накладывает определенные ограничения: 32 инструкции, максимум 4 текстуры, отсутствие градиентной выборки из текстур, от-сутствие динамического ветвления.

ps_1_2 – Расширение 1.1, добавлены новые функции и увеличено ко-личество инструкций до 64.

ps_1_3 – Расширение 1.1, добавлены новые функции и увеличено ко-личество инструкций до 64.

ps_1_4 – Расширение 1.1, добавлены новые функции и увеличено ко-личество инструкций до 64.

ps_2_0 – Накладывает определенные ограничения: 64 инструкции, 32 инструкции для текстурных выборок, 8 текстур, отсутствие динамиче-ского ветвления

ps_2_x – Для каждого вендора эта версия является специфичной, по-этому нельзя однозначно говорить о ее ограничениях

ps_3_0 – Накладывает определенные ограничения: 512 инструкций, неограниченное количество инструкций для текстурных выборок, пря-мой доступ к позиции точки, наличие динамического ветвления
Взято из Shaders in Xors3d Engine. First steps (RU)


Часовой пояс GMT +4, время: 16:37.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot