English
Source / code snippets

OpenGL Render-To-Texture

 

Sven
Bader


Hierfür have I a while used, there it no Documentations for Funktionsumfang of OpenGL in XProfan gives. i'm dran, too Access to akuellere OpenGL functions to obtain, by then but here the oldschool example

usually resolve to the Rendern on a Textur by glBindFramebuffer, I go whom detour over glReadPixels and point The in each Frame the Textur To.

circa with this engineering Szenen To spiegeln How z.B. on of/ one Wasseroberfläche bräuchte it to my understanding the following: Kamera in same stood off and umgekehrten Winkel under The spiegelnde surface, Textur as Projektion - latter have myself not yet correctly hinbekommen.
Declare tex&[5]
Declare xrot!, yrot!, zrot!, xpos!, ypos!, zpos!,xsrot!,ysrot!,zsrot!,xspos!,yspos!,zspos!
Declare smooth%,mb&,mousestartx%,mousestarty%,mousex%,mousey%
Declare end%,hPic&
Declare x&, y&, bytes&,mem#,size&,mem&,light#,t&,fps&,mod&

Proc MouseKeyboard

    mousex% = %MouseX
    mousey% = %MouseY

    if mb& = 0

        case isKey(1) : mb& = 1
        case isKey(2) : mb& = 2

    endif

    if (hardship(isKey(2)) & hardship(isKey(1)))

        'Startposition for rotate and Zoomwen again nobodies
        mb& = 0
        mousestartx% = %mousex
        mousestarty% = %mousey
        xsrot! = xrot!
        ysrot! = yrot!
        zspos! = zpos!

    endif

    'Tastaturrotation
    case isKey(37)  : yrot! = yrot! - 1.0
    case isKey(39) : yrot! = yrot! + 1.0
    case isKey(38)    : xrot! = xrot! + 1.0
    case isKey(40)  : xrot! = xrot! - 1.0
    'Mausrotation

    if (mb& = 1)

        yrot! = ysrot! - (mousestartx% - %mousex) * 0.4
        xrot! = xsrot! - (mousestarty% - %mousey) * 0.4

    endif

    'Mauszoom

    if (mb& = 2) & (abs(mousestarty% - %mousey) > 10)

        zpos! = zspos! + (mousestarty% - %mousey) * 0.03

    endif

    'other Tastatureingaben
    case IsKey(27) : end% = 1

Endproc

declare txID&

Proc DrawGLScene

    'scene for Textur rendern (roter die)
    oGL("glClearColor",1.0,1.0,0.0,1.0)
    oGL("glClear", ~GL_COLOR_BUFFER_BIT | ~GL_DEPTH_BUFFER_BIT)
    ogl("Origin",0,0,-0.2)'Objects the Size "1" are here exakt so high How the Viewport
    oGL("Move", xpos!, ypos!, zpos!)
    oGL("Rotate", xrot!,yrot!,zrot!)
    oGL("Texture",0, 1)
    oGL("Color", 1,0,0,1)
    ogl("Cuboid",2,2,2)
    'Screenshot in memory lay
    oGL("glReadPixels", 210,20,520,520,~GL_RGB,~GL_UNSIGNED_BYTE,mem#)
    'Textur create, from Perfomancegründen, under no circumstance Mipmaps
    ogl("glBindTexture",~GL_TEXTURE_2D,txID&)
    ogl("glTexEnvi",~GL_TEXTURE_ENV, ~GL_TEXTURE_ENV_MODE, ~GL_MODULATE)
    ogl("glTexImage2D",~GL_TEXTURE_2D,0,~GL_RGBA,520, 520,0,~GL_RGB,~GL_UNSIGNED_BYTE,mem#)
    ogl("glTexParameteri",~GL_TEXTURE_2D, ~GL_TEXTURE_MAG_FILTER, ~GL_LINEAR)
    ogl("glTexParameteri",~GL_TEXTURE_2D, ~GL_TEXTURE_MIN_FILTER, ~GL_LINEAR)
    'Visible scene rendern and Show
    oGL("glClearColor",1.0,1.0,1.0,1.0)
    oGL("glClear", ~GL_COLOR_BUFFER_BIT | ~GL_DEPTH_BUFFER_BIT)
    oGL("Texture",txID&, 1)
    oGL("Color", 1,1,1,1)
    ogl("Cuboid",2,2,2)
    oGL("Show")

Endproc

' Hauptprogramm
' -------------
windowstyle 1+2+4+8+16
windowtitle "render to texture"
window (%maxx *  0.5 -480), (%maxy *  0.5 - 300) - 960,600'kompatible spelling
UseIcon "Gesicht"
Dim mem#, 520*520*3'x * y * bpp
'oGL iitialisieren, Textur preparing
oGL("Init", %hWnd, 1,1,1,1)
oGL("PosMode",1)
oGL("glEnable", ~GL_CULL_FACE)
ogl("glGenTextures",1,addr(txID&))
'little more light!
dim light#,16
long light#,0  = single(0.5),single(0.5),single(0.5),single(1.0)
oGL("glLightfv",~GL_LIGHT0 ,~GL_AMBIENT,light#)'GL_AMBIENT
'Startposition
zpos! = -5
xrot! = 0
yrot! = 0

WhileNot end%

    MouseKeyboard()
    DrawGLScene()

EndWhile

oGL("Done")
End

42 kB
Bezeichnung:render2texture
Hochgeladen:09/03/21
Downloadcounter72
Download
 
09/03/21  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

1.448 Views

Untitledvor 0 min.
H.Brill10/29/23
Sven Bader02/01/23
Ernst05/29/22
p.specht11/18/21
More...

Themeninformationen

this Topic has 1 subscriber:

Sven Bader (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie