forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Соотношение количества полигонов... (http://forum.boolean.name/showthread.php?t=187)

AnRee 11.10.2005 15:14

У меня есть вопрос...или предложение...Короче говоря я хочу чтобы здесь написали соотношение полигонов с ФПС, допустим если у меня в кадре 3000 полигонов, а ФПС 22 - значит что-то не то, а если около 10000?

Diplomat 11.10.2005 15:44

Не знаю, от видеокарты с ёё дровишками зависит, от разрешения, от текстур, от сурфейсов и количества обьектов... да мало ли...
А вообще, по идее на рендеринг 10000 полигонов уйдет [u]порядка[u] 10мс, так что ФПС будет пару сотен...
А вообще- ответить нельзя в принципе. Только имперически:
Код:

Graphics3D 800,600,32,1
SetBuffer BackBuffer()

Cam=CreateCamera()
MoveEntity Cam,0,0,-10

Mesh=CreateMesh()
For q=0 To 1000
        Cube=CreateCube()
        AddMesh Cube,Mesh
        FreeEntity Cube
Next

While Not KeyHit(1)

        If M<MilliSecs() Then
 M=MilliSecs()+1000
 MaxFPS=FPS
 FPS=0
        Else
 FPS=FPS+1
        EndIf

        RenderWorld()
 Text 10,10,"Triangles: "+TrisRendered()
 Text 10,20,"FPS: "+MaxFPS
        Flip(0)
       
Wend
End

Проверился сам: на 12х1000 нетекстуреных полигонов у меня 165 ФПС... :)

jimon 11.10.2005 22:13

соотношения имхо несуществует

Diplomat 12.10.2005 00:33

Ну, зависимость вот она. /запускаем тест и ждем результатов/
Только роль она играет в падении быстродействия явно не критическую...
Код:

Graphics3D 800,600,32,1
SetBuffer BackBuffer()

Cam=CreateCamera()
MoveEntity Cam,0,0,-10

For q=1 To 8
        Sun=CreateLight(1)
        TurnEntity Sun,Rnd(360),Rnd(360),Rnd(360)
        LightColor Sun,Rnd(500)-250,Rnd(500)-250,Rnd(500)-250
Next

Dim FPSInfo(800)

Mesh=CreateMesh()


While Info<800 And KeyHit(1)=0

        FPS=FPS+1
        If M<MilliSecs() Then
 M=MilliSecs()+100
 MaxFPS=FPS*10
 FPS=0
 FPSInfo(Info)=MaxFPS
 Info=Info+4
 For q=1 To 10
        Cube=CreateCube()
        PositionMesh Cube,Rnd(6)-3,Rnd(6)-3,Rnd(6)-3
        RotateMesh Cube,Rnd(360),Rnd(360),Rnd(360)
        AddMesh Cube,Mesh
        FreeEntity Cube
 Next       
        EndIf

        RenderWorld()
 Text 10,10,"Steps left: "+(800-Info)
 Text 10,20,"FPS: "+MaxFPS
 Text 10,30,"Tris: "+TrisRendered()
 Text 10,45,"Press [Esc] to terminate"
        Flip(0)
Wend

Cls
Print "FPS statistics:"
Color 255,0,0
For q=0 To 800
        Rect q,600-FPSInfo(q)/4,3,FPSInfo(q)/4
Next
Flip
WaitKey()
End

End


AnRee 12.10.2005 04:49

Цитата:

Originally posted by jimon@Oct 11 2005, 08:13 PM
соотношения имхо несуществует
2jimon ну ты же сам говорил, что при 5000 треугольниках не может у тебя быть ФПС 100 :)
2diplomat пасибо! :rolleyes:

jimon 12.10.2005 08:43

ето тоже самое fps=k*x+c
вот k и есть ета зависимость
а c ето щитай rand(-100,0)

такто прямой зависимости нету

Diplomat 12.10.2005 13:19

Зависимость- нелинейная. Она экспотенциальная.
Т.е. ФПС=К/Х,
где К- таинственный коэ-фт, а Х- кол-во поликов.
И именно поэтому она (зависимость) не играет особой роли. Грубо говоря, с 3000ФПС до 2000ФПС падение произойдет даже при незначительном росте треугольников, но никто его не заметит, а вот чтоб уронить ФПС со скажем 40 до 20- понадобится повысить кол-во полигонов уже в разы, а этого почти всегда можно избежать... :)


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

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