portal-style portals

Blitz3D Forums/Blitz3D Programming/portal-style portals

Wigwam(Posted 2009) [#1]
OK, I'm gonna be forced to ask a really open ended question- but I want an effect that will allow me to create a "portal", (like in the game portal)
in other words, a surface that looks as if it's just a regular door, but the room behind it is actually stored somewhere else. I was thinking of doing something with multiple cameras and projecting them onto surfaces, but I can't get that right either.

so... I decided to ask for help because I just don't know how to go about doing it. thanks in advance if you know how to do this..


Mortiis(Posted 2009) [#2]
You need render to texture, which you can have with FastExt library. You will just place a second camera where the portal opens to, and render that camera to the portal texture.


Gabriel(Posted 2009) [#3]
You need render to texture

No you don't. You can just render as normal and use CopyRect to copy to a texture. FastExt might be faster (might meaning I have no idea, I've never used it) but it's certainly not required.


Nate the Great(Posted 2009) [#4]
what you need to do for a cool door effect is something like this.

render camera in the other room from an equivalent position/rotation and copyrect to texture. Then get the projected x and y of each corner of the door. You can use this to set the UV coords for the texture. I may get an example up later. If your door is partially offscreen then it doesnt work an your out of luck. So I dont think there is a bugless way to do it when its partially offscreen.

you can also try cubemapping to another room. :)


Nate the Great(Posted 2009) [#5]
here is an example!

use left/right arrows to turn camera



Here is another cooler example




GIB3D(Posted 2009) [#6]
Heh, move forward and backwards.



I added

TranslateEntity campiv,0,0,(KeyDown(200)-KeyDown(208))
PositionEntity portalcampiv,EntityX(portalcampiv),EntityY(portalcampiv),-980+EntityZ(campiv)



Wigwam(Posted 2009) [#7]
thanks Nate the Great. that code is what I am looking for- and I'll credit you for it if you like. although I'm having a few problems getting that to work in my own engine.

I haven't changed anything about it, apart from the 640*480 graphics to 1024*768 and assigned the portal to a type. I also changed it so the "CameraPick" picks the vertex's actual location so you can move the portal around. it seems to tile the texture whenever you turn the viewpoint, though.


Morbius(Posted 2009) [#8]
Be sure to check out our own Jeremy Alessi's article on Gamasutra:

http://www.gamasutra.com/view/feature/3770/games_demystified_portal.php


Nate the Great(Posted 2009) [#9]
@Wigwam - why use camerapick? I dont see how camera pick would help. Try changing it back to cameraproject and it should work.


GIB3D(Posted 2009) [#10]
@Morbius - That's extremely interesting. It makes me want to pause on my recreation project and try out a portal thing. :D


_33(Posted 2009) [#11]
That would be cool if it permitted you to travel in the window and that you'd "teleport" to where that portal points to. Then it would be a functionnal portal.


GIB3D(Posted 2009) [#12]
From what I read, it does. It checks if you're touching the portal, and if you are, it disables your collision. Then if you go in too far, you come out the other side.