# What will it take for computers to efficiently draw a curved surface?

**URL:** <https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953>\
**Category:** Factual Questions\
**Created:** [August 19, 2009, 2:24pm UTC](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953 "2009-08-19T14:24:05Z")\
**Posts on this page:** 4\
**Page:** 3

<div class="post-metadata">

**Author:** ![beowulff](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/beowulff/32/542_2.png) [@beowulff](https://boards.straightdope.com/u/beowulff)\
**Post date:** [August 22, 2009, 8:05pm UTC](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953/41 "2009-08-22T20:05:11Z")

</div>

> [@panamajack](#):
>
> So why did you say, “Both only draw with straight lines.”? Either the curve drawn is smooth or it isn’t, and if it’s made up of straight line segments, it’s not smooth (in the sense I’ve established I’m using, which perhaps I should have clarified before).
> 
> To rephrase an earlier question: If the input to the display is an ideal pure sine wave, would you say the curve that results is only drawn with straight lines?

The ouputs from the DAC are quantized. If you filter them, you can reduce jaggedness at the expense of accuracy. Even without filtering, the vectors are going to be drawn continuously (“smoothly”) at some scale, due to slew rate limitations.

But, what I was trying to convey (poorly, I guess) is that digital systems have fundamental resolution limits- it’s impossible for any output device to draw a perfect curve. Whether that matters to the end user is a different story.

---

<div class="post-metadata">

**Author:** ![Punoqllads](https://avatars.discourse-cdn.com/v4/letter/p/d2c977/32.png) [@Punoqllads](https://boards.straightdope.com/u/Punoqllads)\
**Post date:** [August 22, 2009, 8:27pm UTC](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953/42 "2009-08-22T20:27:21Z")

</div>

Let’s look at how a D/A converter would smooth out a curve that is value _y_ at time _t_ and _y + [symbol]e[/symbol]_ at _t + [symbol]d[/symbol]_ where _[symbol]e[/symbol]_ is the smallest difference in voltage that the original digital signal can represent. For an arbitrarily large _[symbol]d[/symbol]_, you would need a very wide filter to be able to recognize that the line has a slight slope rather than a slope of zero. However, if you make the filter that wide, then you would make a high-frequency sin wave impossible to display. In order to make that high-frequency sin wave displayable, you have to make the filter narrower, which would then make the shallow-slope line appear to be a flat line, followed by a sharper-than-desired sloped line, followed by another flat line.

---

<div class="post-metadata">

**Author:** ![panamajack](https://avatars.discourse-cdn.com/v4/letter/p/47e85d/32.png) [@panamajack](https://boards.straightdope.com/u/panamajack)\
**Post date:** [August 23, 2009, 12:46am UTC](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953/43 "2009-08-23T00:46:46Z")

</div>

_edit: nevermind, I understand it now_

Of course there’s a limit to what a DAC can output, but **beowulff** , you implied that it’s impossible for _any_ smooth signal to come out of a DAC + filter. My contention is that you can filter both quantization error and clamp the sampling bandwidth into the noise (expending enough effort on the filter) without much difficulty.

Displays don’t really need to refresh amazingly fast, so it’s not something that requires an impractical effort, either.

---

<div class="post-metadata">

**Author:** ![Recliner](https://avatars.discourse-cdn.com/v4/letter/r/a88e57/32.png) [@Recliner](https://boards.straightdope.com/u/Recliner)\
**Post date:** [August 23, 2009, 2:55am UTC](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953/44 "2009-08-23T02:55:43Z")

</div>

> [@Capt.Ridley\_s\_Shooting\_Party](#):
>
> There need not be any revolution, we already have the technology: raytracing and other scanline rendering techniques. See any of Pixar’s films for examples of their use.
> 
> If you want realtime raytracing, then that’s necessarily limited by computational power. Massively parallel GPUs and CPUs (and the fact that raytracing is easily parallelisable) means its only a matter of time before we see real time raytracers running at resolutions higher than 320x240, too.

For the record, most modelling and animation is done with good ol’ polygons, either directly or indirectly. For example, someone upthread mentioned NURBS – which are curves defined by points which don’t lie on the curve itself, but whos presence defines the curve by – ok, sorry, back to the topic at hand: with a NURBS surface, while the curve itself is mathematically defined, the display of same is, eventually, turned into a triangulated mesh to be rendered. Raytracing of purely mathetmatic algorithms tends to limit you to geometric primitives and other simple objects that can be defined by a simple equation; cartoon-like characters, generally not.

Its possible I’m wrong, but I’ve done a fair bit of 3D (modelling, animating, and rendering), and I know any displayed result (beyond initial primitives) is going to be based on a rendered mesh.

[Previous page](https://boards.straightdope.com/t/what-will-it-take-for-computers-to-efficiently-draw-a-curved-surface/506953.md?page=2)
