Tag Info

New answers tagged

0

What is the correct multiplication order for the entity/model matrix? Scale then rotate then translate. Can i use a single matrix for all components of a entity or do i need to calculate in the width/height of the image/text/animation component. No each component part of your scene has its own matrix as the matrix represents the combination of ...


2

I know this is old, but I finally discovered the solution. In my game, I am using g.translate(x,y); but I was using a float for the x and y values. So I did this: g.translate(Math.round(transX),Math.round(transY); Now there are no more vertical lines! Hopefully this helps anyone else with this problem.


1

It's almost always better to change a state's object instead of changing an object's state. Mostly for readability, as thats how GL is expected to be used. Even if you have multiple attachments in common between FBOs, I would still suggest binding them to each FBO. As for performance, its implementation dependent, but framebufferTexture is likely slower due ...


0

Maybe an old topic, but for those unity devs out there... they are bringing the stencil buffer to free version in untiy 4.6, this way, you can make basic mirrors with the ability to cull objects out of the other side.


2

A single animated movie could take many years to render on a single beast of a machine. Since it is pre-rendered it does not matter how much costly effects like light bounces, shadows, etc we add to the scene. These movies usually get rendered by render farms where thousands of PC's are linked together working on the same job. The reason we cannot achieve ...


3

It's worth adding that movie animation usually does a good deal of visual trickery to make perceived motion more fluid. Animators may, for instance, use traditional hand-animation techniques which are not typically used in realtime rendering, such as smears, multiples or warping to produce more fluid-looking motion despite the lower framerate which movies ...


2

Pixel color addresing is bad, it will work on a square but not on a rectangle. Change this: colors[ x * texture.Width + y ] = borderColor; colors[ x * texture.Height + y ] = Color.Transparent; To this: colors[ x + texture.Width * y ] = borderColor; colors[ x + texture.Width * y ] = Color.Transparent; EDIT: If you are using the other method, your ...


10

What about animated movies rendering for hours and hours makes them so beautiful while in-game live rendering is less beautiful (from a general point of view)? You're assuming that the difference is simply in the render -- in an animated movie, there's also a chance for editing after the fact. They might have effects composited in that would have been ...


4

To answer one of the questions the OP asked in a comment: "So who should be the main culprit? Polygon level or ray tracing?" This question is more difficult than it looks. I think a good rule of thumb is the following equation (which I made up by the way): number of calculations = {polygons} * {light sources} * {effects} Basically, this means that ...


7

The other answers cover the raw graphics issues in good detail, but don't mention an important part of the realism of games vs. movies and trailers: the animations and camera movements. In a movie or trailer, each movement of people and cameras can be carefully coordinated to show just the right emotion for the moment, and they never need to be repeated. In ...


7

Adding to the other great answers that were already posted, it is worth noting that in order to achieve the fast processing times that games need, game developers need to bake many of their visual effects as simple textures. This means that great care must be taken in avoiding effect that won't bake well. One important effect that's hard to bake for video ...


36

Besides the time factor, it's worth noting that in a movie, the artist has complete control over what the viewer will and won't look at. In your typical movie scene, the camera won't spend much time pointed at the ceiling, or pointed into a dark corner of the room, or aimed at someone's ankle, so the polygon and texturing budget for those elements will be ...


93

You already mentioned one of the central points: Time. In the process behind rendering a high fidelity animation, multiple different approaches and algorithms are used (all usually combined under the term "Global Illumination"), with Ray-Tracing being one of the most common ones (others include for example Radiosity and Ambient Occlusion). Ray-Tracing ...


8

You kind of answered your own question already. Animated movies generally usually have a higher level of detail which causes a long render time for each individual frame. Games on the other hand don't have quite as much detail in them, because the scene has to be rendered 30 or more times per second. That's also why developers try to reuse as much assets ...


-1

No, from rasterization point of view both are the same. GPU processes all points independently and doesn't care about their position.


2

Yes, there are many performance implications to consider even when two objects share the same amount of geometry. Fragments that fail a Z-buffer test will not invoke fragment shaders. The amount of screen-space that the objects occupy will impact performance, as fill-rate is a big deal especially on mobile devices. If you have large triangles that are ...


24

Fundamentally, a core goal in rendering is for each frame displayed on the monitor to present a single, coherent image. There are several different strategies which are, or were, used in order to achieve this. In the following, I mention "vsync". Vsync is the moment at which the monitor begins drawing a new screen image; it's the point at which "vblank" ...


7

The tearing you're talking about is caused by sending data to the monitor at a different rate than it refreshes. If it's a 60 Hz monitor and you're updating at 80 fps, you can get tearing. But that happens and can be fixed with vsync whether you're using a back buffer or not. A back buffer is just used because pushing to the monitor is slow, especially if ...


0

With just a couple of slight rearrangements, you could have: float a = (transform.position.x - Camera.main.transform.position.x) * Main.scale; float b = (transform.position.y - Camera.main.transform.position.y) * Main.scale; onscreen = a > -width && a < GameView.width && b > -height && b < GameView.height; It will ...


1

Keep an "on-screen tiles" collection that you update each time the camera moves and each tile has a reference to the objects in it. This was you only need to update the objects referenced by the tiles that are on screen (or just outside).


-1

Turns out if you want to render only colour, but not texture you have to disable GL_TEXTURE_2D



Top 50 recent answers are included