[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #47677] non-planar patches are not supported i
From: |
Markus Mützel |
Subject: |
[Octave-bug-tracker] [bug #47677] non-planar patches are not supported in Octave |
Date: |
Tue, 19 Apr 2016 13:58:42 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0 |
Follow-up Comment #3, bug #47677 (project octave):
After some debugging, I am under the impression that OpenGL does not support
non-coplanar polygons at all.
For the missing vertex, patch_tesselator::combine is called and the point is
collapsed onto [0 1 0].
>From the OpenGL docs [1]:
GLU_TESS_COMBINE
The combine callback is called to create a new vertex when the tessellation
detects an intersection or wishes to merge features.
If I understand correctly, this is something OpenGL does automatically.
The only thing that occurs to me that would enable non-coplanar polygons would
be to divide the polygons into coplanar subsets and draw them seperately...
With the attaches patch that adds a bunch of debugging messages, I get the
following:
>> hp = patch ('Vertices', [0, 1, 0; 1, 1, 0; 0, 0, 0; 0, 0, 1], 'Faces', [1 2
3 4]);
opengl_renderer::draw_patch vdata[0] (0, 1, 0)
opengl_renderer::draw_patch vdata[1] (1, 1, 0)
opengl_renderer::draw_patch vdata[2] (0, 0, 0)
opengl_renderer::draw_patch vdata[3] (0, 0, 1)
opengl_renderer::draw_patch drawing faces
opengl_renderer::draw_patch (0, 0, 1)
opengl_tesselator::add_vertex (0, 0, 1)
opengl_renderer::draw_patch (0, 0, 0)
opengl_tesselator::add_vertex (0, 0, 0)
opengl_renderer::draw_patch (1, 1, 0)
opengl_tesselator::add_vertex (1, 1, 0)
opengl_renderer::draw_patch (0, 1, 0)
opengl_tesselator::add_vertex (0, 1, 0)
opengl_renderer::draw_patch ending face
patch_tesselator::combine vertices to combine (1, 1, 0)
patch_tesselator::combine vertices to combine (0, 1, 0)
patch_tesselator::combine (1, 1, 0)
patch_tesselator::vertex (1, 1, 0)
patch_tesselator::vertex (0, 0, 1)
patch_tesselator::vertex (0, 0, 0)
opengl_renderer::draw_patch drawing contours
opengl_tesselator::add_vertex (0, 0, 1)
opengl_tesselator::add_vertex (0, 0, 0)
opengl_tesselator::add_vertex (1, 1, 0)
opengl_tesselator::add_vertex (0, 1, 0)
opengl_renderer::draw_patch ending contour
patch_tesselator::combine vertices to combine (1, 1, 0)
patch_tesselator::combine vertices to combine (0, 1, 0)
patch_tesselator::combine (1, 1, 0)
patch_tesselator::vertex (1, 1, 0)
patch_tesselator::vertex (0, 0, 1)
patch_tesselator::vertex (0, 0, 0)
(file #36963)
_______________________________________________________
Additional Item Attachment:
File name: patch_tesselator_debug.patch Size:10 KB
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?47677>
_______________________________________________
Nachricht gesendet von/durch Savannah
http://savannah.gnu.org/