dmitry.vavilov Posted April 29, 2019 Share Posted April 29, 2019 Hello. Is there some way to produce high-aspect picture (reso like 20000x800) without distortion on one screen? So, i need something like render_panorama but cameras should stand in a row, look the same world direction and don't have distortions on the seams. It's for a video CG production, not sim/game, so performance doesnt matter at all. Thanx. Link to comment
morbid Posted April 30, 2019 Share Posted April 30, 2019 Hello Dmitry, Have you checked AppWall plugin? It supports up to 6 displays in a row. May I ask you how you're going to show the final image? Will it be a video wall or a screen with projectors? Thanks. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
dmitry.vavilov Posted April 30, 2019 Author Share Posted April 30, 2019 Yes of course. I guess its cameras stand in one point, so causing panoramic distortion And manual operation with projection/modelview (based on viewport_02 sample) can produce cameras like on attachment on topic start. Of course it is wrong way too. Quote May I ask you how you're going to show the final image? Will it be a video wall or a screen with projectors? It could be wide led screen like this but more wide, but may be splitted to Windows "displays" if needed. Link to comment
morbid Posted April 30, 2019 Share Posted April 30, 2019 Dmitriy, I've read again the thread and I think I missed something. We can't render more than one independent camera in this case. There's only one "observer", the perspective depends on one point, in other cases, you'll get more artifacts. To avoid significant distortions you can change FOV. I've attached a simple diagram. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
dmitry.vavilov Posted May 1, 2019 Author Share Posted May 1, 2019 Ok, got it. So if i want final resolution width like 20000px - i have to set your blue Viewer's resolution like 60000px width, then crop top and bottom on rsulting frame. This way gives wide picture without distortion. But Editor built-in Video grabber creates 16384px width pictures max. What is better way to grab high-res frames? Link to comment
morbid Posted May 6, 2019 Share Posted May 6, 2019 Dmitriy, Most of the GPUs can handle with 16384px only. I'm afraid 60 000px is not achievable due to API (16k is a max resolution for DirectX) and VRAM limitation. You can save 16k image and crop it. Thanks. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
dmitry.vavilov Posted May 6, 2019 Author Share Posted May 6, 2019 Thank you. I think 60000px is achievable by multiple pass with skewed frustum (as shown on the picture). There will be six Grabber passes with width 10000px and then i should just connect six png to one on each frame outside Unigine. But there's a little problem: this sample for setObliqueFrustumPlane doesnt affect on camera. So setFov etc works there, but setObliqueFrustumPlane doesnt work. Camera is created this way: Player player = new PlayerDummy(); player.setPosition(Vec3(5428.0f,7224.0f,10.0f)); player.setDirection(Vec3(0.0f,-1.0f,-0.4f)); engine.game.setPlayer(player); And test project has no another code. Please tell me what I'm doing wrong. Link to comment
dmitry.vavilov Posted May 6, 2019 Author Share Posted May 6, 2019 Oh, figured out that UnigineScript version of setObliqueFrustumPlane doesnt work, but C# version works as designed, it's enough. Thank You very much. Link to comment
morbid Posted May 7, 2019 Share Posted May 7, 2019 14 hours ago, dmitry.vavilov said: I think 60000px is achievable by multiple pass with skewed frustum (as shown on the picture). Yes, that should work. 13 hours ago, dmitry.vavilov said: Oh, figured out that UnigineScript version of setObliqueFrustumPlane doesnt work We've checked this method in UnigineScript, everything seemed to be okay: int update() { float time = engine.game.getTime(); Vec4 plane = Vec4(1.0f, 1.0f, 1.0f, 1.0f + sin(time) * 4.0f); Player player = engine.game.getPlayer(); Camera camera = engine.game.getPlayer().getCamera(); camera.setObliqueFrustum(1); camera.setObliqueFrustumPlane(plane); player.setCamera(camera); return 1; } Thanks. How to submit a good bug report --- FTP server for test scenes and user uploads: ftp://files.unigine.com user: upload password: 6xYkd6vLYWjpW6SN Link to comment
Recommended Posts