How high a resolution can panorama module can support these days??

Started by keithfishbiscuit, Fri 23/02/2024 15:19:51

Previous topic - Next topic

keithfishbiscuit

how high resolution can panorama module can support these days?? been thinking doing a game like myst exile with riven style more realism graphic...but want to pump up the resolution

keithfishbiscuit

I guess I posted in a wrong sub forum.... please redirect

Crimson Wizard

Quote from: keithfishbiscuit on Fri 23/02/2024 15:19:51how high resolution can panorama module can support these days?? been thinking doing a game like myst exile with riven style more realism graphic...but want to pump up the resolution

Given it draws 3D in script, using "software drawing", that will load CPU instead of relying on graphics card, and is pretty slow. It will slow down linearly with the increase of resolution.
I recall that the old 320x200 game using this module ran on around 28-30 fps for me in AGS 3.6.1. It will get only slower if resolution increases.

For a hi-res 3D in AGS I would recommend writing a plugin that can draw proper 3D gfx using Direct3D or OpenGL. Or use a different engine.

On another hand, as far as I know, "Myst" did not use real-time 3D rendering. Instead it was using prerendered backgrounds. You can do same with AGS without a problem.

keithfishbiscuit

Quote from: Crimson Wizard on Fri 23/02/2024 16:01:14
Quote from: keithfishbiscuit on Fri 23/02/2024 15:19:51how high resolution can panorama module can support these days?? been thinking doing a game like myst exile with riven style more realism graphic...but want to pump up the resolution

Given it draws 3D in script, using "software drawing", that will load CPU instead of relying on graphics card, and is pretty slow. It will slow down linearly with the increase of resolution.
I recall that the old 320x200 game using this module ran on around 28-30 fps for me in AGS 3.6.1. It will get only slower if resolution increases.

For a hi-res 3D in AGS I would recommend writing a plugin that can draw proper 3D gfx using Direct3D or OpenGL. Or use a different engine.

On another hand, as far as I know, "Myst" did not use real-time 3D rendering. Instead it was using prerendered backgrounds. You can do same with AGS without a problem.

I see, may be I was not being 100% clear, I am aiming using pre rendered graphic, myst exile used pre rendered graphic as well, just panorama, and I am hoping the panorama module can do some magic for me...

Crimson Wizard

Quote from: keithfishbiscuit on Fri 23/02/2024 16:09:34I see, may be I was not being 100% clear, I am aiming using pre rendered graphic, myst exile used pre rendered graphic as well, just panorama, and I am hoping the panorama module can do some magic for me...

Panorama module renders 3D "box" in real-time (of course it uses prepared wall graphics), but it does this with ags script and "software drawing" (drawing pixels and parts of bitmaps on bitmaps), and this is slow without graphics card acceleration.

I was not aware of "Myst Exile", checking this now, it seems to have either real-time 3D scenes, or some tricks to emulate these...

LimpingFish

First, I want to say that the Panorama modules are some of the easiest to use, while criminally underused, modules ever made for AGS. Only two finished games (both made by me!) using the original module have ever been released (I think...), which is a real bummer. :-\

Anyway...

The original Panorama module can support up to 800x600, as far as I remember (and I'm not sure if the max resolution was ever increased beyond this). The Panorama3D module, on the other hand, works best (in my experience) at 320x240, but I do remember the max resolution being increased to 640x480 soon after it's original release.  The Panorama module also supports animated backgrounds, though I'm not sure if this is the case with the Panorama3D module.

As to how the process works, both modules use pre-rendered bitmaps (Panorama uses four images, representing the cardinal directions, while Panorama3D uses six, the four cardinal and an additional "Up" and "Down" view). Both modules require square images (ie. 320x320, 640x640, etc) for the process to work.

Basically, your rooms will look like this:
Spoiler
(Panorama) Four square images stitched together.


(Panorama3D) Six square images stitched together.
[close]

As far as I know, neither module supports anything other that a 4:3 ratio, so, hypothetically speaking, a "HD" 4:3 resolution of 1440x1080 would require four (or six) 1440x1440 images stitched together making an image that's 5760 pixels wide and 1440 (or 4320) pixels high. And, again afaik, rendering the effect using an image of that size would be far too resource intensive (and slow) to be feasible, even if the module supported such resolutions.

You can of course create your game using the supported resolutions, and upscale the game from the AGS setup executable.
Steam: LimpingFish
PSN: LFishRoller
XB: TheActualLimpingFish
Spotify: LimpingFish

keithfishbiscuit

Quote from: LimpingFish on Sat 24/02/2024 00:27:11First, I want to say that the Panorama modules are some of the easiest to use, while criminally underused, modules ever made for AGS. Only two finished games (both made by me!) using the original module have ever been released (I think...), which is a real bummer. :-\

Anyway...

The original Panorama module can support up to 800x600, as far as I remember (and I'm not sure if the max resolution was ever increased beyond this). The Panorama3D module, on the other hand, works best (in my experience) at 320x240, but I do remember the max resolution being increased to 640x480 soon after it's original release.  The Panorama module also supports animated backgrounds, though I'm not sure if this is the case with the Panorama3D module.

As to how the process works, both modules use pre-rendered bitmaps (Panorama uses four images, representing the cardinal directions, while Panorama3D uses six, the four cardinal and an additional "Up" and "Down" view). Both modules require square images (ie. 320x320, 640x640, etc) for the process to work.

Basically, your rooms will look like this:
Spoiler
(Panorama) Four square images stitched together.


(Panorama3D) Six square images stitched together.
[close]

As far as I know, neither module supports anything other that a 4:3 ratio, so, hypothetically speaking, a "HD" 4:3 resolution of 1440x1080 would require four (or six) 1440x1440 images stitched together making an image that's 5760 pixels wide and 1440 (or 4320) pixels high. And, again afaik, rendering the effect using an image of that size would be far too resource intensive (and slow) to be feasible, even if the module supported such resolutions.

You can of course create your game using the supported resolutions, and upscale the game from the AGS setup executable.


oh, that a very nice! I know where to find the Panorama Module, there seems to be a page link to it, but as of Panorama3D, do I just search it within this subform?? Many thanks for you guys answers!!

eri0o

I think this thread should be moved to the advanced technical board or the beginner one since this forum is more posts of the modules themselves (or tools or plugins). Alternatively it could be merged in the Panorama module topic.

Regarding Myst Exile I think what it brings is it uses pre-rendered videos too, and then does the panorama transformation on top of it. I think keeping the resolution low for this should be possible to do so using ags4 video playback (in development) - you would need to code some custom way to deal with "moving hotspots" if you have to but I think this never happens in Myst Exile.

The obvious alternative I could think is making a plugin for this, I wonder how it would work.

@LimpingFish how much trouble is to render these four or six square backgrounds? Did you use Blender for this? I ask because I wonder if such a plugin should load images like that or try to work with this weird distorted image instead.

keithfishbiscuit

Quote from: eri0o on Sat 24/02/2024 12:47:52I think this thread should be moved to the advanced technical board or the beginner one since this forum is more posts of the modules themselves (or tools or plugins). Alternatively it could be merged in the Panorama module topic.

Regarding Myst Exile I think what it brings is it uses pre-rendered videos too, and then does the panorama transformation on top of it. I think keeping the resolution low for this should be possible to do so using ags4 video playback (in development) - you would need to code some custom way to deal with "moving hotspots" if you have to but I think this never happens in Myst Exile.

The obvious alternative I could think is making a plugin for this, I wonder how it would work.

@LimpingFish how much trouble is to render these four or six square backgrounds? Did you use Blender for this? I ask because I wonder if such a plugin should load images like that or try to work with this weird distorted image instead.

I am a 3d artist, so I think I can answer the blender panorama question, though I used to work with 3ds max mainly, I am a blender user now... I think blender has a function to just render a very large rendering composing of 6 view sides, I did it a couple back in the days with 3ds max with vray... but the rendering time would be real long especially if it has GI enable/raytrace lighting.

please help me to move this post to a better subforum as I feel I am jamming spaces here. Thank you.

eri0o

I can't move the topic because I am not a moderator. :/

Thank you for answering me! So, from what you mention, it looks like the cubemap is an ok way to expect the input data, I think.

I found this converter here: https://github.com/chinhsuanwu/360-converter



This is interesting because it seems it would be possible to convert a more common as stock equirectangular image/video to the cubemap.

Quote from: LimpingFish on Sat 24/02/2024 00:27:11
Spoiler
(Panorama) Four square images stitched together.


(Panorama3D) Six square images stitched together.
[close]

Kinda itching to find some library that can handle this in a performant effective way to do this in a higher resolution through a plugin. I think it still would be something around 1280 x 720 if besides the plugin it's wanted to have animations and things going on...

Edit: I looked at the module and it runs at around 52 fps in 320x240 it seems. Looking it's code, it looks like there is a little room for improvements using more recent APIs in some places, and I think it has two different types of redraws, this is interesting, because if someone can come up with something that takes into account that the image is in middle of rotation, it doesn't have to redraw perfectly, it needs to do so once it's stopped. Also the module comes with some movement as part of it, like it's meant to already be used to gameplay, I think I would try to split this out, so different types of input could be used for it. I mean, I am not going to reimplement this, just commenting from playing with it.

LimpingFish

Quote from: eri0o on Sat 24/02/2024 12:47:52@LimpingFish how much trouble is to render these four or six square backgrounds? Did you use Blender for this? I ask because I wonder if such a plugin should load images like that or try to work with this weird distorted image instead.

I use Cinema4D, which I find faster and more intuitive than other 3D software, but the effect it achievable in any package.

Using the Panorama3D module (which is the effect I would like to see any proposed updated module/plugin support) as it stands means that I'm only rendering images at 320x320, which is almost instant on even a middling PC. If an updated version supported images of, say, 1280x1280 for each direction required, it would mean significantly longer render times. Nothing spectacular, mind you, but still worth noting.

Quote from: eri0o on Sat 24/02/2024 12:47:52I found this converter here: https://github.com/chinhsuanwu/360-converter

That actually seems really cool. I believe equirectangular mapping was how QuicktimeVR used to handle 360o images and video, as I remember mistakenly rendering the test image as such when Kweepa was first writing the module. I'm not sure why he chose cubemapping over any other technique, though perhaps the mathematics involved are somewhat simpler, or less strain on the engine.

I've always favored cubemapping anyway, because it's so easy to set up. You basically have a camera in your scene that renders a square 90o image of each direction needed. Each resulting image has relatively low distortion, so corrections or edits can be made in Photoshop without impacting the effect.

Having said that, we are talking about the same technique that I've used since 2006(!), so there could very well exist a more efficient (and flexible) technique for any proposed updated module/plugin to use going forward.

EDIT: Topic moved. :)
Steam: LimpingFish
PSN: LFishRoller
XB: TheActualLimpingFish
Spotify: LimpingFish

Crimson Wizard

Quote from: eri0o on Sat 24/02/2024 17:06:24Kinda itching to find some library that can handle this in a performant effective way to do this in a higher resolution through a plugin. I think it still would be something around 1280 x 720 if besides the plugin it's wanted to have animations and things going on...

If in plugin, then this might be done "simply" by rendering a real 3D box. There's an example of a D3D & SpriteVideo plugins that render textures on screen. But it should also be possible to render a 3D scene to a texture, and let display that texture anywhere.

To be fair, AGS could also do that, except there's no script API to set such things up.

eri0o

Quote from: Crimson Wizard on Sun 25/02/2024 04:25:12If in plugin, then this might be done "simply" by rendering a real 3D box.

That's pretty interesting, I never thought about it, would this be like putting it in a skybox?

For some reason the c++ examples I found using DirectX or OpenGL did the conversion of 360 panorama to 3D using shaders, but I guess it's because they didn't thought about using cubemap and instead used the equirectangular image.

keithfishbiscuit

What would happen if I load a view resolution of HD quality image or above into the panorama module or panorama3d? will the system simply crash?? and another question; may be answered before, where can i find out the license information for the panorama module and panorama3d??
cheers guys!!

Crimson Wizard

Quote from: keithfishbiscuit on Sun 25/02/2024 13:52:59What would happen if I load a view resolution of HD quality image or above into the panorama module or panorama3d?

You could simply try yourself and tell what happened :).

keithfishbiscuit

Quote from: Crimson Wizard on Sun 25/02/2024 18:15:18
Quote from: keithfishbiscuit on Sun 25/02/2024 13:52:59What would happen if I load a view resolution of HD quality image or above into the panorama module or panorama3d?

You could simply try yourself and tell what happened :).

sure will. LOL

SMF spam blocked by CleanTalk