6
$\begingroup$

I am able to render a curve by bevelling it.

However, for a scientific visualisation that I am working on, this doesn't render the way I wish it to. I would like the curve to render as a fixed width line irrespective of the distance from the camera.

Currently, I have to adjust the bevelling amount based on camera distance, and also play with rendering samples to get a smooth looking line.

Is there a cleaner approach that I am missing?

I am currently using the "cycles" renderer, but I am open to suggestions for any other renderer. Thanks!

Clarification: This is an animated visualisation. Hence, the distance from camera varies continuously. Here's an example video of what I am trying to do. The comet orbit is the curve I am worried about.

$\endgroup$
2
  • $\begingroup$ Have you tried setting camera view to Orthogonal instead of Perspective? If it's impossible to do with Cycles, you may want to try Blender Internal, too. $\endgroup$
    – Adhi
    Oct 30, 2013 at 7:37
  • 1
    $\begingroup$ I need a perspective view, but thanks for that suggestion. Yes I tried with Blender Internal too, with the Free-style option; but that also requires a mesh, and then it doesn't look like a simple line anymore. $\endgroup$
    – HRJ
    Oct 30, 2013 at 8:17

2 Answers 2

6
$\begingroup$

You could use OpenGL render (the button in the 3D View header) in Wireframe view mode. Every curve is rendered as a line without the need for any beveling. Animations can also be OpenGL rendered.

It is very fast. But there is no possibility to set the line width. It's always 1px.

To support transparency you have to set the shading mode to GLSL (press N in 3D View and look for Shading).

$\endgroup$
4
  • $\begingroup$ It's actually an animation that I need to render. See the example video that I have added to the Q $\endgroup$
    – HRJ
    Oct 30, 2013 at 14:57
  • 1
    $\begingroup$ I updated my answer. There are two OpenGL render buttons: Still and animation. $\endgroup$
    – Maccesch
    Oct 30, 2013 at 15:07
  • $\begingroup$ Played a few times with the OpenGL renderer, but its support for materials seems to be very primitive. No transparency, for example. $\endgroup$
    – HRJ
    Oct 31, 2013 at 7:18
  • 1
    $\begingroup$ I updated again for transparency. $\endgroup$
    – Maccesch
    Oct 31, 2013 at 9:18
2
$\begingroup$

As the distance from camera to an object increases the apparent size of the object will decrease, in perspective things farther away always appear smaller.

The only way to prevent that is to use an orthographic camera or keep all lines the same distance from the camera.

As for increasing samples to get a clean result - that is the nature of cycles. It depends largely on the material and world settings. If you are using simple colours then the blender internal will be just as easy to setup without having to adjust sample amounts.

You can also adjust the resolution of both the bevel and curve to get smoother surface results instead of converting to mesh if the surface of the curve is not smooth enough.

enter image description here

$\endgroup$
1
  • $\begingroup$ Using the bevel and resolution is still converting it to a mesh dynamically. I wanted to avoid that conversion completely so that I can continue to use a realistic wide-angle camera. See the sample vid that I added to the Q. $\endgroup$
    – HRJ
    Oct 30, 2013 at 15:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.