#Subviewport
For context: I’m trying to use godot_wry to draw webpages in a virtual desktop. Except it only follows the virtual windows when the window is the same size as the viewport. Which technically makes sense but indicates that something REALLY weird is going on with its rendering. Even Subviewport fails
November 9, 2025 at 7:18 AM
#Godot でSpriteFramesのアニメーションスプライトをTexture2Dとして参照できる機能が欲しいな SubViewportとAnimatedSprite2Dを使えばできるんだけどそれのためにビューポートを生やすのは重い気がして...
November 6, 2025 at 9:44 AM
im not a very strong 2d artist, haha. 3d is where i work best. so i need to find out how to save a 3d model to a 2d image. easy. simple. i set up what is known as a subviewport, basically picture-in-picture, and attached its viewport source to be a different camera pointing at a "studio set" of
November 5, 2025 at 6:46 PM
Using a two-tone shader which darkens the bottom pixels. (Applying the shader on a CanvasLayer instead of on the Line2D directly removes any overdraw)

These two components, arms and shadow, sit in their own Subviewport - The upper one with a pixel-perfect outline shader.

2/3
October 30, 2025 at 9:15 PM
*That super pixelated world is actually being rendered at a lower resolution (its not post processing). Similarly the n64 looking one is rendered lower with additional effects on top.

I did have to add another subviewport to the mix but it ended up being pretty flexible!
October 27, 2025 at 1:41 AM
If you have a SubViewport in Godot, apparently you can assign its render to a TextureRect.

So I crammed the world into one, and made this really trippy effect by overlaying them. Probably shouldn't use it in the final game. Looks really cool, though.
October 21, 2025 at 12:33 AM
Yeah I have that going in a Subviewport but it's still pretty janky right now lol
October 17, 2025 at 4:42 PM
Was curious so i tried my setup with native windows, image is the node tree at runtime, input is passed to 2D/Control nodes. Container has stretch enabled, but no other changes. Subviewport has Physics > Object Picking enabled. Seems like mouse and keyboard inputs pass through as expected still
October 13, 2025 at 11:11 PM
Oh hey mine was also dealing with windows lol, I'm using another subviewport container setup within the window, and had to make sure physics picking was enabled on it. That plus checking everythings mouse handling settings fixed it for me. Mine are embedded though so idk if it helps in your case
October 13, 2025 at 8:25 PM
The easiest way I found to do this was with a Sprite3D that uses a SubViewport texture, is that what you found too?
September 5, 2025 at 1:57 PM
SubViewportにうまく表示されない理由がずっとわからん
August 28, 2025 at 8:50 AM
Alright, got anti-aliasing working! Very hacky, but pretty much: a SubViewport draws opaque BG objects w/ MSAA, then the main viewport draws w/ a copy of the same objects that writes 255 to stencil buffer. Finally, a fullscreen quad uses the stencil to composite the results.

#indiegamedev #godot
August 26, 2025 at 10:17 PM
Currently trying:

- draw opaque BG objects to a subviewport, with MSAA enabled
- draw dynamic & transparent objects to the main viewport, with copy of BG objects that draws to stencil buffer
- use stencil buffer as mask to composite results
August 26, 2025 at 8:54 PM
Tested it out and got promising results, thanks!

I don't want it to zoom in my game subviewport too, but I'm thinking I can probably offset that by dividing the camera zoom by the content view scale or something.
August 21, 2025 at 10:09 AM
Hmm there are some combos I haven't fully tested yet, since when I changed scale it would change everything. I've mostly stuck with canvas_items and expand aspect mode, but haven't tried changing viewport at runtime as a scaling method.

Would be cool if could change those for each subviewport.
August 21, 2025 at 6:24 AM
Look for a demo project called "Gui Panel 3D" in godot asset library or github. It handles all the input passing from a 3D quad into a subviewport.

It was honestly easier than raycasting haha
August 19, 2025 at 2:01 PM
Creating a pixel-perfect game rendered in a subviewport plus a separate, native resolution UI layer with dynamic scaling support is… challenging.

Mixels are not welcome!

#Godot #GameDev #PixelArt
August 16, 2025 at 6:15 PM
I feel like a genius! Probably obvious to others. #godot

I followed an old random tutorial on using subviewport textures to create maps to use in shaders (ex Fog Of War.) It called get_image() to make an ImageTexture for the shader. But you can just pass the texture to the shader by reference!
August 14, 2025 at 11:12 AM
Yes, you can make it have a transparent background. In the example, I just assigned the subviewport to use its own World3D and Environment.
August 2, 2025 at 6:22 PM
Remember how I use sprite sheets for my wumpa fruit and crate sprites to achieve a 3D GUI look?

You can also use a subviewport to render and animate 3D models inside of, and display what it sees using the subviewport container.

Whichever way you prefer the most, Godot is your oyster.
August 2, 2025 at 6:19 PM
Cuando tienes que juntar cosas 2D y 3D, la manera recomendada de hacerlo es usar un SubViewport.

Bueno pues si lo haces, en el editor (que no in-game), todo lo 2D se vuelve invisible.
August 2, 2025 at 1:03 PM
In the project window settings have you set the scaling to integer?
If that doesn't work you can run the game in a subviewport + container and manually make sure that viewport is scaled only by integers.
Best of luck, the graphics look really cozy!
July 30, 2025 at 1:13 PM
cool #shader stuff in #godot, using a canvas group to mix colors additively under a subviewport then using a shader to retexture them. The yellow is where lava and acid mix and will have a unique effect and texture #gamedev #gamejam
July 24, 2025 at 1:10 AM
Wanted a cool wallpaper for my laptop with the new model @multipaldev.bsky.social made for #doppelgangerdev but this scene is so old and the structure of the game has changed so much it has a live subviewport with an old shader we were using originally.
#godotengine #gamedev #indiegame
July 21, 2025 at 2:18 AM
Fun fact: The game is rendered through a 4:3 SubViewport with a resolution of 960x720, which is then divided by 3 using stretch shrinking to more closely resemble the N64's 320x240. This gets rid of black bars by default and allows 4:3 support for CRTs or other similar displays!
July 19, 2025 at 2:12 AM