forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Инфракрасное Зрение (ака у терминатора) (http://forum.boolean.name/showthread.php?t=13390)

Colossus 22.09.2010 20:16

Инфракрасное Зрение (ака у терминатора)
 
решил сделать зрение терминатора, сделал, но работает некорректно...

вываливаю медию и код - качать тут http://webfile.ru/4755440

подскажите ошибку в связи которой произходит то что вы увидите при запуске...:) эффект можно сказать работает но некорректно

по возможности напишите корректный код если можно))

Randomize 22.09.2010 20:24

Ответ: Инфракрасное Зрение (ака у терминатора)
 
PHP код:

c\Poly=CreateCube() 

Cube?

PHP код:

Function CreateCamQuad(surf%, zoom# = 1.0, near# = 1.0)
    
Local xscr%, yscr%, xcnt%, ycnt%, xpos#, ypos#, i%[4]
    
;размеры экрана
    xscr 
GraphicsWidth()
    
yscr GraphicsHeight()
    ;
координаты центра экрана
    xcnt 
xscr Shr 1
    ycnt 
yscr Shr 1
    
;проекция левого верхнего угла
    xpos 
= (   xcnt) * near / +zoom xcnt
    ypos 
= (   ycnt) * near / -zoom xcnt
    i
[0] = AddVertex(surfxposypos0.00.00.0)
    ;
проекция правого верхнего угла
    xpos 
= (xscr xcnt) * near / +zoom xcnt
    ypos 
= (   ycnt) * near / -zoom xcnt
    i
[1] = AddVertex(surfxposypos0.00.00.0)
    ;
проекция правого нижнего угла
    xpos 
= (xscr xcnt) * near / +zoom xcnt
    ypos 
= (yscr ycnt) * near / -zoom xcnt
    i
[2] = AddVertex(surfxposypos0.00.00.0)
    ;
проекция левого нижнего угла
    xpos 
= (   xcnt) * near / +zoom xcnt
    ypos 
= (yscr ycnt) * near / -zoom xcnt
    i
[3] = AddVertex(surfxposypos0.00.00.0)
    
AddTriangle(surfi[0], i[1], i[2])
    
AddTriangle(surfi[2], i[3], i[0])
    Return 
i[0]
End Function 


Program23 22.09.2010 20:40

Ответ: Инфракрасное Зрение (ака у терминатора)
 
А AmbientLight использовать не проще ли?
И для усиления эффекта,поставить спрайт,текстуру перед камерой:Noise.tga
)))Эффект тот же,а скорость выше.
--------------------------------------
Вот я как-бэ исправил,по-моему нормально вышо))))можешь там амбиентлайт поменять как тебе надобнее.
Вот подкорректированный код:
Код:

Graphics3D 1280,1024,32,2
AmbientLight 255,255,255
SetBuffer BackBuffer()
HidePointer

AmbientLight 255,83,83

Global Camera=CreateCamera()

cube=CreateCube()
PositionEntity cube,0,0,0
cubetex=LoadTexture("GameMedia\txtr_215.jpg")
EntityTexture cube,cubetex


Global Noise%=LoadTexture("GameMedia\Noise.tga",3)

plane=CreatePlane()
planetex=LoadTexture("GameMedia\txtr_173.jpg")
EntityTexture plane,planetex


LoadCamera(0,5,-10)

While Not KeyHit(1)

UpdateCamera()
UpdateWorld
RenderWorld
        If FPSTimer>MilliSecs() Then
        fpsc=fpsc+1
        Else
        fps=fpsc*2
        fpsc=0
        FPSTimer=MilliSecs()+500
        EndIf

Text 100,85,"FPS: "+fps+". Tris rendered:"+TrisRendered()

Flip
Wend
End

Type Camera
        Field Camera%,Poly%,Render%
        Field Mx#,My#
        Field Noise%
End Type

Function LoadCamera(x,y,z)
        c.Camera = New Camera
        c\Camera = Camera
        PositionEntity Camera,x,y,z
                Mx#=MouseXSpeed()
                My#=MouseYSpeed()
                c\Noise=Noise
            c\Poly=CreateCube()
            EntityParent c\Poly,c\Camera
            ScaleEntity c\Poly,2,2,.1
            PositionEntity c\Poly,0,0,2
        EntityTexture c\Poly,c\Noise
            TextureBlend c\Noise,3
End Function

Function UpdateCamera()
        For c.Camera = Each Camera
                Mx#=MouseXSpeed()
                My#=MouseYSpeed()
                RotateEntity c\Camera,EntityPitch(c\Camera)+My#/2,EntityYaw(c\Camera)-Mx#/2,0
                MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
        Next
End Function


Colossus 22.09.2010 21:26

Ответ: Инфракрасное Зрение (ака у терминатора)
 
Спасибо но получилось стремно)) а вот когда делаешь по моему там чисто все красночерное как у Термов


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

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