Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

181 Neutral

About kosmonaut

  • Rank
  1. Hi guys, I'm trying to make my pipeline work correctly for all elements. Some stuff like environment cubemaps, temporal AA and screen space reflections depend on previous data and sometimes wasn't working correctly. For example, when ssr uses the tone mapped image from the last frame it will not integrate well into a pre-tonemapped composition. So I've made this graph to show the set up of the pipeline and make sure i have it all done properly now. Any suggestions? Tips? EDIT: What i use after some consideration and help
  2. Hi guys,   When working on MSAA I've noticed that there are dozens of different quality levels for different GPUs and custom stuff Ati/Amd and Nvidia did - EQAA, Quincunx etc.   In most cases that means sampling distribution differences. Now, I guess MSAA and the research on that might not be as relevant any more today, but I've gotten curious and would like to know more.   However, google seems to not be my friend, info on that seems super sparse and even if some new sampling method is presented I rarely find the associated SampleDescription.Quality associated.   I would appreciate if someone could help :)        
  3. Hi guys,   MonoGame Dev here (aka XNA with SharpDX)   how would I go about manually generating mip maps for a rendertarget (or texture for that matter)?   I often read that for min/max shadow mip chains are generated manually (in this example obviously not just an average downsample but rather a min/max) as well as for bloom RTs.   I presume in these papers the engineers are actually writing to the corresponding mip maps instead of having a dozen other renderTargets called rtMip0, rtMip1 etc.   As of now I use several differently sized renderTargets for my bloom and such, but i feel it would be more convenient to store it all in one RT with its child MIPs - especially for min/max shadows.   So - if that is indeed feasible - how would I go about it?   Thanks in advance.
  4. Hello guys,   I am working on a little project in Monogame and I have to make clear right from the start that I'm not hyper experienced at all when it comes to 3d rendering (3 months of hobby experience? Oh lord...)   Anyways, my game has a wierd frame pacing issue and maybe you guys can point me in the right directions when it comes to finding the error.   When googling the issue only stuff like SLI/Crossfire and Bloodborne came up.   So yeah the issue is basically every once or twice a second I get a gap in computation, approximately double the usual frame time. Und usually one frame with almost 0 ms frametime somewhere too.   This was never noticeable when the game ran at very high framerates (>250 fps). When capping the game at 60 it wouldn't be really noticeable as well, although *sometimes* when i locked to 60 and enabled Vsync it would go to 30 for a few frames, which was noticeable.   However, if I use some more complicated rendering on the GPU, for example just rendering at multiresolution / supersample, and the game runs naturally at 60 or below it becomes very VERY choppy. I recorded the whole thing as a trace for Intel GPA (see below). I think it's safe to say it's not the garbage collector, I checked it in-engine and the garbage disposal times are not aligned with the bumps. Any ideas where I might check for problems? Thanks     and more zoomed in  
  5. kosmonaut

    Pointless Wars - [Turn-Based Pointless Strategy]

    looks great. Can you post a gif of the actual brawl?
  6. Sure looks good for a one man project. Good luck on Greenlight :)
  7. thanks for the answer. I just noticed who you are, actually reading your blog was one of the most fun parts of my days lately (i have just started with Monogame/XNA 3 days ago, and I am seriously impressed with your rendering achievements). I guess I'll stick with diffuse/specular/shadows/normalmapping and some post processing for now though haha   So in the end it makes sense why using a different thread for reading the targetRender is helping nothing, since the graphicsDevice can probably not write to said targetRender during that time, which is likely stalling the main thread. A deep copy might help, I would need to check that out.   Regardless, I just added some 10 ms sleep (sad story ) to my readout thread (plus the adjustment delay for synchronization) and i am back to 1000 Hertz. The whole thing is "good enough" for now, same at fixed 60 or 30 Hz but I'll see if i can improve it eventually.
  8. Hi guys,   I hope some of you can help me. I am working in MonoGame. In my game I have a special render pass where I render all models in the color of their ids ( id 0 being {0,0,0,1} id 256 being {1, 255, 0, 1} and so forth ) and I obviously draw this directly to a renderTarget.   The idea is to have pixel perfect model selection for the mouse, so i can just query my mouse x/y in the renderTarget and get the correct id of the model i hover over with the mouse.   This operation i do in .net and the code looks as follows:   Rectangle sourceRectangle = new Rectangle(Mouse.GetState().X, Mouse.GetState().Y, 1, 1); Color[] retrievedColor = new Color[1]; pickingRenderTarget2D.GetData<Color>(0, sourceRectangle, retrievedColor, 0, 1); selectedEntityID = IdGenerator.GetIdFromColor(retrievedColor[0]); This works very well BUT it is very slow.   If i check for it every frame (I don't have much room here) it doubles my frametime (from 1 ms to 2 ms).   Is there a more efficient way to read the texture?   Bonus Question: "newrenderTarget = oldrenderTarget;" is a copy, not a reference right?   (I tried outsourcing this operation to a seperate thread, but if I update as fast as possible , it still for some reason doesn't help much.)
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!