[Soc-2017-dev] Weekly Report #10 - Silhouette Operator
Sebastian Witt
W.Basti at gmx.de
Fri Aug 4 19:39:04 CEST 2017
**
*Weekly Report #10 - Silhouette Operator*
*
In the 10th week I continued to develop the transition method to connect
a drawn Silhouette to existing geometry.
Turns out, this is a real challenge. I stumbled over a couple of problems.
But first, let’s talk about
What has been done in this week:
*
Implement an algorithm to calculate the edge-ring which is
separating the vertices which need to be cut from the ones which
need to stay.
*
Ordering of those rings
*
Generate bounding-boxes for the rings
*
Find intersecting rings which are the result of cross-node holes
*
Calculate the shared parts of those rings
Problems, Questions, Challenges
First things first: After this week i can say that the task to connect
the parts is harder than expected. I am now pretty sure I will not be
able to deliver a bug-free, tested, documented operator with the
transition option within the GSoC timeframe. It is more complex than
expected because of a couple of reasons:
The Mesh Problem
Currently I have used almost completely the basic mesh structure of
blender. Within sculpting mode everything is handled by manipulating the
mesh of the sculpt. Everything, with exception of the dyntopo mode, is
limited to non-destructive/non-constructive mesh edits. Vertices are
only deformed.
With the silhouette operator I need to create new
vertices/edges/loops/polys (v/e/l/p). Till now this has been no problem
since just appending new data to the v/e/l/p arrays is easy.
Maybe it is just because I misunderstand the customdata structure, but
deleting and rearranging the v/e/l/p is more problematic. Additional
data like vertex color, shape keys etc. is dependent on consistent
v/e/l/p memory.
There is almost no functions in the codebase to manipulate the base mesh
structure.
I started creating a remove vertices function which is supposed to
delete vertices and connected edges etc. adjacent to it. I started to
create redirection tables to redirect all the pointers. Polys -> Loops
-> Edges -> Vertices. Even though this is possible, it breaks references
to it from other sources. I postponed this task and wanted to get some
feedback on these questions first.
The Orthographic Matrix
Earlier this week i sent a question in this mailing list.
How do i get the orthographic projection matrix in perspective mode?
I still don’t know how to do it, so feel free to have a look at it!
What is the time-plan?
Besides the bigger problems like the mesh problem the whole task has
several challenges. Most of which i know how to tackle but need a lot of
time. A random number of arbitrary shaped intersections between random
shapes with various pixel-densities need to be transitioned.
It is hard to say, but my optimistic guess is:
If there is a good method for the mesh problem, I can get a running
version with transitions in 3 weeks from now.
Therefore there will be almost no time for testing, bug fixing or
documentation.
I think it is important to discuss now, so let me know any thoughts on this!
Besides this, ErickBlender made a great video demonstrating the use of
the silhouette operator! I think it shows very well how the operator is
intended to be used. Generating a quick foundation for later refinement
with the other sculpting tools.
So have a look:
https://www.youtube.com/watch?v=VdIV5Mb2XX4&feature=youtu.be
As always, have a great weekend!
Sebastian Witt
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.blender.org/pipermail/soc-2017-dev/attachments/20170804/89a36305/attachment.htm
More information about the Soc-2017-dev
mailing list