<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br><div><div>Le 7 mars 08 à 16:20, Maxime Curioni a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; ">Hello,<br>I am a Master's student studying computer graphics at Tsinghua University, in Beijing, China. Studying rendering algorithms and wanting to participate in the Google Summer of Code 2008, I have been looking for interesting projects for Blender. I stumbled upon the Freestyle project (<a href="http://freestyle.sourceforge.net">http://freestyle.sourceforge.net</a>) and its call for developers for integrating it into Blender. I have since then contacted one of the original authors, Stéphane Grabli, and asked him if he was still interested in acting as a mentor for such a pursuit. Stéphane told me that he would be available to supervise that endeavor. I am now turning to the Blender community to make sure it is still interested in the project, gather some feedback and see whether someone from the developer team could also be involved as a mentor.<br><br>Besides participating in the Google Summer of Code, my motivations are many. First of all, ever since Blender was released to the open source community, I have wanted to participate in the developer team but haven't taken the time to do so. This would be a tremendous opportunity to jump onboard, especially getting deeper in the source code and learning about how a 3D graphics engine is structured and coded. My second motivation is to continue learning about my field of study. I am currently learning about global illumination implementations and I think working on this project (even though I know it is not GI related) could teach me a lot about other areas of rendering. Finally, I see this project as a tremendous challenge on many levels, technically of course (implementing shading languages, understanding Blender's architecture...) but also scientifically (learning about NPR algorithms)  and humanly (managing a decentralized project, getting involved in an open source project...). Stéphane has also mentioned to me that many people from the Blender community have requested this feature in Blender, so the level of expectation is also a great motivation factor.<br></span></blockquote></div><div><br class="webkit-block-placeholder"></div><div><div><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div><br class="webkit-block-placeholder"></div><div>Hello,</div><div><br class="webkit-block-placeholder"></div><div>I have seriouslty considered porting freestyle myself and i have several remarks about it :</div><div><br class="webkit-block-placeholder"></div><div>- A good NPR line draw system would be indeed a great improvement over the crude edge renderer we have now.</div><div>- Freestyle approach is very interesting, but is not a full solution, only complimentary to a solid renderer.</div><div><br class="webkit-block-placeholder"></div><div>However, I now feel it will need profound modifications to be used in blender in an artist friendly fashion. So it cannot be a simple porting in my opinion.</div><div>The python method, while powerfull, is really not adapted to an artist tool.</div><div><br class="webkit-block-placeholder"></div><div>Freestyle works the following way :</div><div><br class="webkit-block-placeholder"></div><div>1/  create a "view map" of all edges and objects according to the camera view, marking edges with some flags (contour, sugestive,  ...)</div><div>2/ mutate the database created earlier by chaining and spliting edges according rules &amp; predicates</div><div>3/ draw strokes with graphic style of the result </div><div><br class="webkit-block-placeholder"></div><div>1/  could be integrated as a separated renderer or replace the edge pass of the actual internal renderer, with the possibility of adding more flags in edit mode, so under artist control (adding or exluding edges to the view map). </div><div>2/ &amp; 3/ are done in freestyle with python scripts (which is why SWIG is needed) but could be replaced in a much more friendly way with nodes like those of compositor. And pynodes like the material ones are still possible. Again, the advantage is easier artist control and modications without reinvoking the renderer</div><div><br class="webkit-block-placeholder"></div><div>So, all in all, i think it is quite a big project for the timeframe involved, and probably more demanding than you anticipated. That dont make it not worthwhile </div><div><br class="webkit-block-placeholder"></div><div>Now, you say you have no prior experience of coding for blender. This is something you have time to correct before GCOC ;)</div><div>Stéphane Grabli support would be great, but you will have/need a blender mentor too.</div><div><br></div><div>Jean-Luc Peurière</div><div><a href="mailto:jlp@nerim.net">jlp@nerim.net</a></div><div><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span> </div><br></div></body></html>