Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 13.12.2008, 15:22   #1
Черный крыс
 
Сообщений: n/a
miniB3D + FBO - трабл. прошу помощи.

Приветствую!

Пытаюсь сделать рендер в тексуру\в имейдж на движке miniB3D. Заюзал FBO. Но тут появилась проблемма....(смори рисунок). - почему то рендериться текстура со смещением....смещаеться на половину вверх.

Уже 2 недели мучаю, но никак не могу победить этот недуг....=(

КОД:
ТИП ИМЕДЖ БУФФЕРА.


TypeTImageBuffer
FieldImage:TImage
Fieldrb:Int[1]
Fieldfb:Int[1]
FieldImageframe:TGLImageframe
FieldFrame:Int=0
FieldOrigX:Int
FieldOrigY:Int
FieldOrigW:Int
FieldOrigH:Int

FunctionSetBuffer:TImageBuffer(Image:TImage,Frame:Int=0)
LocalIB:TImageBuffer=NewTImageBuffer
IB.Image=Image
IB.Frame=Frame
IB.GenerateFBO()
IB.BindBuffer()
ReturnIB
EndFunction

FunctionInit(Width:Int,Height:Int,Bit:Int=0,Mode:Int=60)
SetGraphicsDriver(GLMax2DDriver())
GraphicsWidth,Height,bit,Mode
glewInit()
EndFunction

MethodGenerateFBO()
ImageFrame=TGLImageFrame(Image.frame(Frame))

imageframe.v0=imageframe.v1
imageframe.v1=0.0

LocalW:Int=Image.width
LocalH:Int=Image.Height

'AdjustTexSize(W,H) 


glGenFramebuffersEXT(1,fb)
glGenRenderbuffersEXT(1,rb) 

glBindTexture(GL_TEXTURE_2D,Imageframe.name);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb[0]); 


glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,GL_COLOR_ATTACHMENT0_EXT,GL_TEXTURE_2D,Imageframe.name,0);
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT,rb[0]);
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT,GL_DEPTH_COMPONENT24,W,H);
glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT,GL_DEPTH_ATTACHMENT_EXT,GL_RENDERBUFFER_EXT,rb[0])

Localstatus:Int=glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT)

Selectstatus
CaseGL_FRAMEBUFFER_COMPLETE_EXT 
Print"allright"+":"+Status
CaseGL_FRAMEBUFFER_UNSUPPORTED_EXT
Print"choosedifferentformats"
Default
End 
EndSelect 

EndMethod

MethodBindBuffer(cam:TCamera=Null)
Ifcam<>Null
endif
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,fb[0])
EndMethod
MethodUnBindBuffer()
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT,0) 
EndMethod

MethodCls(r#=0.0,g#=0.0,b#=0.0,a#=1.0) 
glClearColorr,g,b,a
glClearGL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT
EndMethod

MethodBufferWidth:Int() 
ReturnImage.Width
EndMethod

MethodBufferHeight:Int()
ReturnImage.Height
EndMethod

EndType


ГЛАВНЫЙ ЦИКЛ ПРОГРАММЫ :




WhileNotKeyHit(KEY_ESCAPE)

IfKeyDown(30)d=d+1
IfKeyDown(44)d=d-1
IfKeyDown(203)TurnEntitycamera,0,-3,0
IfKeyDown(205)TurnEntitycamera,0,+3,0

PositionEntitycamera,0,7,0
MoveEntitycamera,0,0,d

TurnEntitypivot,0,1,0

UpdateWorld

ShowEntitycamera
CameraClsColor(camera,0,128,0,128) 
Cls 
SetViewport0,0,512,512
IB.BindBuffer(camera)
RenderWorld()
IB.UnBindBuffer()
SetViewport0,0,1024,768

ShowEntitycamera
HideEntityplan_cam
RenderWorld

renders=renders+1

IfMilliSecs()-old_ms>=1000
old_ms=MilliSecs()
fps=renders
renders=0
EndIf

BeginMax2D() 
SetScale(1,1) 
SetBlend(ALPHABLEND) 
SetAlpha(1) 
SetColor(255,255,255) 
SetRotation(0) 
DrawImageImg,MouseX(),MouseY(),0
EndMax2D()


Text0,0,"FPS:"+String(fps)+"|W="+PixmapWidth(texture.pixmap)+"|H="+PixmapHeight(texture.pixmap)

Flip1
IfKeyHit(KEY_SPACE)
GetScreenShot()
EndIf
Wend
Все остальные установки самого miniB3D - не трогал.


Последний раз редактировалось Черный крыс, 13.12.2008 в 15:27.
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Трабл с управлением Робота Colossus 3D-программирование 1 12.11.2008 20:08
Скай куб. прошу помощи. Crystal 3D-программирование 11 01.08.2007 12:54
Прошу помощи. magpro Болтовня 3 13.07.2007 16:51
Прошу помощи Atomikc 2D-программирование 11 25.05.2007 11:41
Blitz3D vs MIniB3D MiXaeL 3D-программирование 22 16.05.2007 22:50


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com