Transforming Custom Geometries to 2D and Custom Views

What do I need to provide in my custom geometry in order to have it display correctly in 2D and Columbus views? Though they are rendered correctly in 3D, all of my geometries are have lighting issues in 2D/Columbus (+z face of my box-like geometries are very dark), and my simple 4 point bounded planes only have one of four points in the correct location, the others are skewed. I’m not sure if I’ve failed to implement something required for these views or if I am somehow not ordering my positions correctly. I currently only create positions, indices, and normals (which are computed using the GeometryPipline.computeNormal() function.) I don’t compute st, tangents or binormals because I don’t know what the st attribute is or how to compute it.
Thanks,

Eric

Eric,

Your code may be OK. You are probably running into this bug: https://github.com/AnalyticalGraphicsInc/cesium/issues/592

We don’t have the bandwidth to address this soon. You can also use the appearance to turn off lighting, e.g., construct the appearance with “{ flat : true }”

Regards,

Patrick

That sounds like the issue I’m running into. I thought I remember reading that the appearance can’t be changed once the primitive has been created, is that correct? I can’t seem to locate where I read that. Flat shading doesn’t look very good for my geometries in 3D, so I guess I’d have to replace each primitive whenever switching from 2D/CV to 3D for one with the correct appearance.

However, that doesn’t seem to be the problem with my collection of bounded planes:

3D View

Columbus View

Eric,

We can change a primitive’s appearance anytime (or assign a new appearance to the primitive), but we can’t change the geometry instances in the primitive (except for per-instance updates as explained in the tutorial). This is what makes it so fast - all the geometry instances are combined together.

Thanks for the screenshots. Have you tried a similar region with one of the built-in Cesium geometries like the box or extruded polygon?

Regards,

Patrick

Ok, I had it backwards then. Perhaps I’ll change it to flat just in 2D mode.

Regarding my custom geometry not displaying correctly, in the Geometry and Appearances Sandcastle example, I see some weirdness if I change line 119 to:

extent = Cesium.Extent.fromDegrees(-180.0, 45.0, -160.0, 90.0);

and view in Columbus View. That’s all I’ve been able to reproduce so far, I’ll keep trying. I did notice that if I move my geometry to other parts of the globe it renders correctly in 2D/CV. I’ll see if I can narrow it down more.

Eric

Thanks Eric. I can reproduce this. I submitted #1297, which includes a workaround. Everyone familiar with this code is working other things so I can’t promise a fix soon.

Patrick