tags:

views:

147

answers:

1

We've got a sphere which we want to display in 3D and color given a fuction that depends on spherical coordinates.

The sphere was triangulated using a regular grid in (theta, phi), but this produced a lot of small triangles near the poles. In an attempt to reduce the number triangles at the poles, we've changed out mesh generation to produce more evenly sized triangles over the surface.

The first triangulation method had the advantage that we could easily create a texture and drape it over the surface. It seems that in WPF it isn't possible to assign colors to vertices the way one would go about in OpenGL or Direct3D.

With the second triangulation method it isn't apparent how to go about generating the texture and setting the texture coordinates, since the vertices aren't aligned to a grid anymore.

Maybe it would be possible to create a linear texture containing a color for each vertex, but then how will that effect the coloring? Will it still render smoothly over the triangle surfaces as one would expect by applying per vertex coloring?

A: 

I've converted the algorithm to use a linear texture which is really just a lookup into the colormap. This seems to work great and is a much better solution than the previous one. Instead of creating a texture of size ThetaSamples * PhiSamples, I'm now only creating a fixed texture of 256 x 1.

Christo
Do you think you could share the algorithm you developed? I'm trying to solve the same problem here. I attempted to plot with a gradient brush as a texture, mapping (U,V) between (0,0) and (1,0) onto my vertices, but couldn't get results which approximated the Gouraud-type shading I wanted. What, exactly, did you do?
Rob Perkins