﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AMx%2FFreestyle_Internals_Overview</id>
	<title>利用者:Mx/Freestyle Internals Overview - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AMx%2FFreestyle_Internals_Overview"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mx/Freestyle_Internals_Overview&amp;action=history"/>
	<updated>2026-04-22T09:34:23Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mx/Freestyle_Internals_Overview&amp;diff=89873&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mx/Freestyle_Internals_Overview&amp;diff=89873&amp;oldid=prev"/>
		<updated>2018-06-28T18:42:52Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 18:42時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mx/Freestyle_Internals_Overview&amp;diff=89872&amp;oldid=prev</id>
		<title>2009年8月17日 (月) 11:01にwiki&gt;Mxによる</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mx/Freestyle_Internals_Overview&amp;diff=89872&amp;oldid=prev"/>
		<updated>2009-08-17T11:01:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Freestyle Internals Overview ==&lt;br /&gt;
&lt;br /&gt;
=== File directories ===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| release/scripts/freestyle/&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| where sample style module files are stored&lt;br /&gt;
|-&lt;br /&gt;
| source/blender/makesdna/&lt;br /&gt;
|&lt;br /&gt;
| data structure to load and save configurations&lt;br /&gt;
|-&lt;br /&gt;
| source/blender/freestyle/&lt;br /&gt;
|&lt;br /&gt;
| core engine&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| app_blender/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| geometry/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| image/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| python/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| rendering/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| scene_graph/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| stroke/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| system/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| view_map/&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| &lt;br /&gt;
| winged_edge/&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
DNA_scene_types.h&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| R_EDGE_FRS&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| render Freestyle strokes toggle button (in 'Output' panel)&lt;br /&gt;
|-&lt;br /&gt;
| B_FRS_ADD_MODULE&lt;br /&gt;
|&lt;br /&gt;
| composite strokes in current render layer (in 'Render Layers' panel)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
butspace.h&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| B_FRS_SELECT_RENDER_LAYER&lt;br /&gt;
| &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| render layer selection list&lt;br /&gt;
|-&lt;br /&gt;
| B_FRS_ADD_MODULE&lt;br /&gt;
|&lt;br /&gt;
| adding new module to render layer configuration&lt;br /&gt;
|-&lt;br /&gt;
| B_FRS_SELECT_MODULE_FILE&lt;br /&gt;
|&lt;br /&gt;
| select module&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interface ===&lt;br /&gt;
&lt;br /&gt;
FRS_freestyle.h&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// (re)initialize Freestyle when .blend file read&lt;br /&gt;
void FRS_initialize();&lt;br /&gt;
&lt;br /&gt;
// cleans up Freestyle resources before program quits&lt;br /&gt;
void FRS_exit();&lt;br /&gt;
	&lt;br /&gt;
// composites Freestyle stroke for the specified Render target&lt;br /&gt;
void FRS_add_Freestyle(Render* re);&lt;br /&gt;
&lt;br /&gt;
// panel configuration&lt;br /&gt;
void FRS_select_layer( SceneRenderLayer* srl ); &lt;br /&gt;
void FRS_add_module();&lt;br /&gt;
void FRS_delete_module(void *module_index_ptr, void *unused);&lt;br /&gt;
void FRS_move_up_module(void *module_index_ptr, void *unused);&lt;br /&gt;
void FRS_move_down_module(void *module_index_ptr, void *unused);&lt;br /&gt;
void FRS_set_module_path(void *module_index_ptr, void *unused);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FRS_freestyle_config.h&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void FRS_add_freestyle_config( SceneRenderLayer* srl );&lt;br /&gt;
void FRS_free_freestyle_config( SceneRenderLayer* srl );&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration information is stored in SceneRenderLayer(DNA_scene_types.h) structure for loading/saving.&lt;br /&gt;
&lt;br /&gt;
DNA_freestyle_types.h&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct FreestyleModuleConfig {&lt;br /&gt;
	struct FreestyleModuleConfig *next, *prev;&lt;br /&gt;
	&lt;br /&gt;
	char module_path[256];&lt;br /&gt;
	short is_displayed;&lt;br /&gt;
	short pad[3];&lt;br /&gt;
	&lt;br /&gt;
} FreestyleModuleConfig;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef struct FreestyleConfig {&lt;br /&gt;
	ListBase modules;&lt;br /&gt;
	&lt;br /&gt;
	int flags;&lt;br /&gt;
	float sphere_radius;&lt;br /&gt;
	float dkr_epsilon;&lt;br /&gt;
	int pad;&lt;br /&gt;
	&lt;br /&gt;
} FreestyleConfig;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Pipeline ===&lt;br /&gt;
&lt;br /&gt;
initialization:&lt;br /&gt;
# toggle 'Freestyle' button on&lt;br /&gt;
# for each render layer where you want Freestyle strokes rendered, toggle 'FrSt' on&lt;br /&gt;
# configure each render layer's configuration &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
when clicking &amp;quot;Render&amp;quot;&lt;br /&gt;
do_render_3d (pipeline.c)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if 'Freestyle' button pressed and internal renderer selected&lt;br /&gt;
	strokes added (calling FRS_add_Freestyle)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FRS_add_Freestyle (FRS_freestyle.cpp)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init view and camera (based on information from the scene)&lt;br /&gt;
	used during for view map calculation&lt;br /&gt;
	stored in:&lt;br /&gt;
		- freestyle_viewpoint[3]: camera position&lt;br /&gt;
		- freestyle_mv[4][4]: modelview matrix&lt;br /&gt;
		- freestyle_proj[4][4]: projection matrix&lt;br /&gt;
		- freestyle_viewport[4]: viewport&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
for each render layers&lt;br /&gt;
	if (		render layer is enabled&lt;br /&gt;
		and	'FrSt' layer option toggled on &lt;br /&gt;
		and	render layer has at least one enabled style module&lt;br /&gt;
	    )&lt;br /&gt;
	{&lt;br /&gt;
		prepare rendering&lt;br /&gt;
			clear canvas&lt;br /&gt;
			load mesh&lt;br /&gt;
			add style modules&lt;br /&gt;
			set parameters&lt;br /&gt;
			compute view map&lt;br /&gt;
&lt;br /&gt;
		render strokes in independent image&lt;br /&gt;
		composite strokes image into render layer &lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Freestyle engine implementation (TODO) ===&lt;br /&gt;
&lt;br /&gt;
View map calculation&lt;br /&gt;
&lt;br /&gt;
=== Python API implementation (TODO) ===&lt;br /&gt;
&lt;br /&gt;
Directors&lt;/div&gt;</summary>
		<author><name>wiki&gt;Mx</name></author>
		
	</entry>
</feed>