Simon F
  • Member for 6 years, 4 months
  • Last seen this week
  • You 'K?
2 answers
3 votes
219 views
Why don't I see tile-based 3D graphics?
1 votes

This is not really an answer to the latter parts of your question but more to address As we know, tiles can make it quicker to update large portions of the display at once, as compared with a bitmap. ...

View answer
2 answers
1 votes
121 views
What does the z-buffer look like in memory?
0 votes

Most demostrative[SIC] implementations I found implement the Z-buffer as a simple array with size (height * width), so I'm basing myself off of that. I suspect a purely linear (i.e., scanline-by-...

View answer
1 answers
1 votes
75 views
When and who introduced the idea of a scene graph?
2 votes

Not 3D as such, but it seems in 1963 Ivan Sutherland's seminal "Sketchpad" (and wikipedia) had instancing. eg. See "Chapter VI RECURSIVE FUNCTIONS" of the 2nd reference. IIRC ...

View answer
1 answers
0 votes
79 views
Spline interpolation library in cpp
1 votes

So you have a series of points and, at each point, a supplied derivative? Is a piecewise cubic sufficient or does it need higher derivative continuity? If the former is ok, then Cubic Hermite Splines ...

View answer
3 answers
0 votes
58 views
FLOP - exact definition
1 votes

Just to add to whychmaster's reply, in my experience, on a GPU, a floating-point operation, when used in quoting FLOPS (floating-point operations per second) benchmark figures will refer to Addition (...

View answer
1 answers
4 votes
482 views
Conversion from cubic catmull-rom spline to cubic b-spline
4 votes

Quoting the comments above for context: Just to confirm, are you asking, given a set of $N$ CatRom control points, $$\{CR_0, CR_1, CR_2, CR_3 ... CR_{n-1}\}$$ forming a piecewise curve, what is the ...

View answer
4 answers
16 votes
12k views
What does GPU assembly look like?
5 votes

As others have said, GPUs expose a higher-level language, which allows multiple different architectures i.e. different vendors and different GPU generations, to all support the same applications. [...

View answer
2 answers
5 votes
167 views
How to decide which way to triangulate a quad?
3 votes

One other, albeit more expensive approach, is to subdivide your quad into 4 triangles by putting a point at the centre of each quad. There are some advantages to this in that: It will be more ...

View answer
3 answers
6 votes
3k views
Gaussian blur with transparency
7 votes

I apologise for only skimming through your question/answer and the links you gave but I thought it would be a good idea to post what needs to be done to correctly do any blending and/or filtering on ...

View answer
2 answers
3 votes
245 views
Why are texture coordinates often called UVs?
6 votes

This is not a definitive answer, but it is generally accepted that Ed Catmull introduced Texture Mapping in his 1974 thesis, "A SUBDIVISION ALGORITHM FOR COMPUTER DISPLAY OF CURVED SURFACES" ...

View answer
1 answers
1 votes
65 views
Given a background image B and a composie image of A OVER B, can we somehow recover image A?
Accepted answer
0 votes

Just to confirm, assuming non-premultiplied alpha, at one point you performed the following, per pixel operation: $$ Result_{RGB} = Src_{A} * Src_{RGB} + (1.0 - Src_{A})* Background_{RGB} $$ You say ...

View answer
4 answers
15 votes
14k views
How is Anti Aliasing Implemented in Ray Tracing?
1 votes

Just to add to the answers above: Distributed Ray Tracing (Cook, Porter, & Carpenter). Allows you to simultaneously do spatial AA, temporal AA (i.e. motion blur), and focus/depth of field. Best ...

View answer
1 answers
1 votes
87 views
Why the gradients generated in original Perlin Noise causing axis-aligned clumping?
1 votes

Very briefly, Perlin noise ideally is meant to have, on average, the same frequency characteristics no matter where in the texture you are or in what direction you are looking. However, the way it's ...

View answer
1 answers
0 votes
69 views
How do you compute the winding number of a closed poly curve?
1 votes

Winding number as in https://en.wikipedia.org/wiki/Winding_number? Unless I'm mistaken, one way is to fire, say, a horizontal 'ray' out from your point towards, say, $+\infty$. Each time you cross an ...

View answer
2 answers
1 votes
154 views
Defining "inside" and "outside" of a 3D space
0 votes

As no one else seems to want to suggest something, given that you said you wanted to navigate within an arbitrary enclosed volume, perhaps you could use an approach similar to that of the 1995 game ...

View answer
2 answers
0 votes
602 views
What are "Triangles" in 3d modeling?
1 votes

To expand on @Makogan and @lightxbulb's answers/comments: There are several reasons for using triangles as the basic primitive. (Non-degenerate) triangles are guaranteed to be planar. This means ...

View answer
3 answers
1 votes
373 views
How does graphics api like OpenGL determine which triangle is back face to cull?
1 votes

It's actually fairly simple (and in essence 'equivalent' to what you said above). If you represent triangle ABC's projected XY coordinates as a matrix... $$M_{ABC} = \begin{bmatrix} X_A & ...

View answer
1 answers
1 votes
147 views
Generating the end caps of a cylinder using triangle strips for use in a geometry shader
2 votes

If the end of your cylinder is convex, with vertices $V_0, V_1, V_2,...V_{N-1}$ then just replace your fan order (i.e. as above) with this strip $V_0, V_1, V_{N-1}, V_2, V_{N-2}, V_3...$, i.e. just ...

View answer
2 answers
0 votes
174 views
Why is my raycaster so slow?
2 votes

Disclaimer: I've only skimmed through the code. To be honest, the best thing to do would be to use a profiler on your code to identify what actually is costing CPU cycles. Having said that, some ...

View answer
1 answers
3 votes
137 views
What is the point of having integer-based draw routines in software rasterizer?
2 votes

The following is really an assorted set of comments: Why integer? Floating-point hardware is (in general) far more complex than integer and so on many (old) CPUs it (a) might not have been available (...

View answer
3 answers
2 votes
473 views
How does the Painter's Algorithm handle transparency?
3 votes

I would like to add that Painters' algorithm can be run from front to back with transparency provided your blending operations are associative. I would recommend reading Jim Blinn's "Compositing, Part ...

View answer
1 answers
2 votes
268 views
computing derivatives of sampled data
Accepted answer
1 votes

Rather than fit bilinear patches to your sample points, which are only C0 continuous$^\spadesuit$ may I instead suggest fitting the surface using Catmull-Rom splines? These will give you C2 continuity....

View answer
1 answers
3 votes
203 views
Non least squares formulation to fit catmull rom spline
1 votes

Disclaimer: I've done some work in the past with wavelet decomposition of image data but it occurred to me that it may be applicable to your problem. Admittedly, I don't actually know if the ...

View answer
2 answers
1 votes
50 views
Help with wireframe artifacts on mesh procedural UV texturing
0 votes

Having read PaulHK's answer, it occurred to me that a possible alternative to the 'bleed', based on premultiplied alpha, would be to initialise your unfilled area to transparent black rather than ...

View answer
4 answers
4 votes
669 views
Why isn't rasterization combined with raytracing more often?
Accepted answer
1 votes

Disclosure: I work for IMG/PowerVR Indeed there are rendering systems that can do this: Imagination demonstrated hybrid rendering on their "Wizard" Ray Tracing/Rasterisation system. Scroll down to "...

View answer
1 answers
4 votes
330 views
Double buffering always necessary?
Accepted answer
7 votes

Indeed there are/were 'just in time' renderers. For example, Dreamcast (PowerVR CLX2) had a mode where the 'frame buffer' only had to be a few rows of tiles in size. The system would be rendering ...

View answer
2 answers
3 votes
603 views
What does texture resolve mean?
2 votes

Perhaps some example usage from graphics papers might be helpful - it basically refers to computing a 'pixel' value potentially from multiple fragments... RealityEngine Graphics (Akeley. 1993) ...

View answer
1 answers
2 votes
89 views
How to handle quads?
Accepted answer
2 votes

It sounds like you want to know how to ray trace a bilinear surface patch. A quick search turned up this page by Ramsey, Potter & Hansen, which includes a paper and, probably better still, source ...

View answer
1 answers
3 votes
132 views
Non jagged line algorithm for javascript canvas
Accepted answer
2 votes

The problem you are seeing, i.e. "jaggies" or "staircasing", is an example of the more general problem known as "aliasing" and, in the graphics field, the term you want to search for is "Antialiasing"....

View answer
1 answers
5 votes
427 views
Dealing with interpolated normals within a raytracer
1 votes

Disclaimer: It's been a long time since I looked at this sort of thing but here goes... Disclaimer2: On re-reading your question(s) I realised I might have misunderstood what you were asking. I'll ...

View answer