Jump to content

vladislavbelov

WFG Programming Team
  • Posts

    1.338
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by vladislavbelov

  1. Then you swapped titles Because in 0 A.D. we have a window scaled by system (that means it scales UI as well) or via gui.scale, since we don't support Hi-DPI (2K, 4K) yet (have another things in mind x) ). You mean resolution or ratio?
  2. Actually I'm resting when writing that kind of shaders. This one took about half an hour AFAIK.
  3. Vector is good, but it's good for flat and simple design. Pretty usual for AAA shooters and actions. Not all elements should be 4K, I'd say only big pictures, like the helmet. There is another way to save memory: 4K masks with lower-res textures. Low-res texture for colors and 4K mask (in 3D it's called detail texture) to make it more sharp on edges or add some tiny details.
  4. Is it going to be scalable? Because it might be hard to move these nicely and tightly packed elements for a different display ratio.
  5. Another shader that shouldn't be used in the game (completely GLSL, no C++). Font is stored in the shader itself encoded by ivec4, colors are chosen as average and a little deviation from it excluding average neighborhood.
  6. What kind of tasks do you prefer? Usually it's useful to get some basic knowledge how the engine works first. I always can create a bunch of tasks to improve small things that can make a person doing these tasks more familiar with the engine. But these tasks don't have a lot of creativity freedom, they're more educational and relaxing (sometimes) than some hard-work research.
  7. I have the famous habit: I never look at explosions and battles x) If answering seriously, for me to make renderer slow locally I need to put all units together on screen. But it rarely happens, more than 50% of all units are spreaded all over a map.
  8. It depends on your camera position. If you're not looking at a battle then pathfinder is more expensive.
  9. Binding is a very interesting area to measure and discuss. Approximated numbers of 7 years old talk: For pretty old card you can switch up to 5K shaders per frame. And the interesting part is that sometimes the shader switching might be faster than using a single shader, especially on 2K/4K displays, because of branching/limited texture cache.
  10. Preliminary results for our statistics: 800x600: 0.31% 1024x768: 0.88% 1280x720: 2.28% 1280x800: 2.11% 1280x1024: 1.80% 1360x768: 1.49% 1366x768: 21.68% 1440x900: 4.52% 1536x864: 4.43% 1600x900: 5.05% 1680x1050: 2.68% 1792x1120: 0.39% 1920x1080: 37.87% 1920x1200: 1.67% 2048x1152: 0.44% 2560x1080: 0.79% 2560x1440: 5.70% 3440x1440: 0.92% 3840x2160: 1.40% Other: 2.15%
  11. That texture doesn't have mipmaps, because it's generated each frame.
  12. Actually Shlick approximation de facto is a standard in the graphics and games industry. And even more it's imperfect for some cases on modern hardware. People try to find more accurate approximations: https://belcour.github.io/blog/research/publication/2020/08/26/brdf-fresnel-decompo.html It's true life. But I'm working on water refactoring. And I've already removed a bunch of in-place hacks.
  13. You can always check your frame by capturing it with RenderDoc or something similiar.
  14. The same as skies, they both are reflection, refraction and absorption. I don't see much difference in terms of math and energy conservation, ambient color or cubemap is another hack to make things look more realistic. And on modern hardware you can find pretty cheap techniques to get the second reflection (beside ray-tracing).
  15. It happens in our code, and usually it's just a workaround to make it look better. You haven't seen the water one before I've done a cleanup for it.
  16. I suppose it contradicts to your patch for the current game. Because you decrease ambient from skies for vertical surfaces. But AO is used for any kind of indirect light, including sun direct light reflected from some surfaces, which is more powerful than skies ambient.
  17. Per draw call constant. But some constant might be per frame. It's not interpolated by vertex shader, because vertex shader knows nothing about fragments. It will be interpolated on or or after rasterization step. Usually it's called per-pixel in both modes. Only some driver implementations allow you to force per-sample executing. Mostly, but not in that case. vnormal isn't normalized, so it'd be near but not always cosine.
  18. I suppose it's not because they don't want to, but because they can't. Since checking BRDF for every combination of pixels of different textures is a very complex task. I believe there's no fast solution in the whole production world of renderers. So by your measurements there is no production software with real PBR. I suppose you mean 1.0 by white. Since it's not a color, a ratio of reflected/scattered and absorbed. You're just looking on them at very high angle I believe it's not hard to meet a 90%-95% mirror, especially with a metal back I think it's important to note for those who is unfamiliar with PBR, that the reflection is colored, because each collision of light with a surface absorbs a part of the light energy and absorbs differently for different wavelengths.
×
×
  • Create New...