﻿<?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%3AArtificer%2FSummerOfCode2006</id>
	<title>利用者:Artificer/SummerOfCode2006 - 版の履歴</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%3AArtificer%2FSummerOfCode2006"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Artificer/SummerOfCode2006&amp;action=history"/>
	<updated>2026-05-24T13:42:21Z</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:Artificer/SummerOfCode2006&amp;diff=47182&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:Artificer/SummerOfCode2006&amp;diff=47182&amp;oldid=prev"/>
		<updated>2018-06-28T17:47:38Z</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日 (木) 17:47時点における版&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:Artificer/SummerOfCode2006&amp;diff=47181&amp;oldid=prev</id>
		<title>wiki&gt;Artificer: /* Email */ Camouflaged email address</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Artificer/SummerOfCode2006&amp;diff=47181&amp;oldid=prev"/>
		<updated>2006-06-09T04:01:46Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Email: &lt;/span&gt; Camouflaged email address&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Summer of Code Proposal =&lt;br /&gt;
== Name ==&lt;br /&gt;
&lt;br /&gt;
Ben Batt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Email ==&lt;br /&gt;
&lt;br /&gt;
benbatt at gmail.com&lt;br /&gt;
&lt;br /&gt;
== Project Title ==&lt;br /&gt;
&lt;br /&gt;
Modifier Stack Upgrade&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Synopsis ==&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to improve Blender's modifier stack in two ways:&lt;br /&gt;
* Making the API more flexible and removing restrictions such as the current inability to place certain modifiers after non-deforming modifiers&lt;br /&gt;
* Adding some new modifiers: Autosmooth, UV Projection and Displacement.&lt;br /&gt;
&lt;br /&gt;
== Benefits to the Blender Community ==&lt;br /&gt;
&lt;br /&gt;
This project will benefit the Blender community by providing a more useful&lt;br /&gt;
and flexible modifier interface to users and programmers. Some constraints&lt;br /&gt;
will be removed, giving more power to users. The new modifier types added&lt;br /&gt;
will provide more functionality, increasing Blender's usefulness.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Deliverables ==&lt;br /&gt;
&lt;br /&gt;
* Upgrade of modifier stack&lt;br /&gt;
* Upgrade of current modifiers to work with the new modifier stack&lt;br /&gt;
* Autosmooth modifier&lt;br /&gt;
* UV Projection modifier&lt;br /&gt;
* Displacement modifier&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Details ==&lt;br /&gt;
&lt;br /&gt;
=== Modifier Stack Upgrade ===&lt;br /&gt;
&lt;br /&gt;
Blender's current modifier stack is a very useful tool. However, it suffers&lt;br /&gt;
from some constraints. The main constraint this project aims to remove is&lt;br /&gt;
the &amp;quot;original data&amp;quot; constraint: some modifiers require the base object's&lt;br /&gt;
original data and thus cannot be placed in the stack after any non-deforming&lt;br /&gt;
modifiers. Another constraint is that many modifiers cannot be applied to&lt;br /&gt;
curves (for some modifiers this may not make sense, but for others it would&lt;br /&gt;
be useful).&lt;br /&gt;
&lt;br /&gt;
The best approach to upgrading the modifier stack is still to be determined,&lt;br /&gt;
but there are a few possibilities.&lt;br /&gt;
&lt;br /&gt;
One approach would be to extend the DerivedMesh implementation (currently&lt;br /&gt;
used to transfer data between modifiers) to maintain all the original data&lt;br /&gt;
from the base mesh. This could be less work, but may not be the best&lt;br /&gt;
solution, as DerivedMesh is used in many places - a more targeted solution&lt;br /&gt;
could be better.&lt;br /&gt;
&lt;br /&gt;
Another approach would be to create a new ModifierMesh data structure to&lt;br /&gt;
hold intermediate data between modifiers. This structure could hold all the&lt;br /&gt;
original data from the base mesh, and modifiers could perform shallow copies&lt;br /&gt;
of any data which they did not change. The structure would need to keep&lt;br /&gt;
track of which data was shallow copied and possibly provide for a mapping&lt;br /&gt;
between the current ModifierMesh data and the original object data.&lt;br /&gt;
&lt;br /&gt;
=== Current Modifier Upgrade ===&lt;br /&gt;
&lt;br /&gt;
Along with upgrading the modifier stack, the currently implemented modifiers&lt;br /&gt;
will also have to be upgraded to work with the new API. This will not be&lt;br /&gt;
too large a job, as most of the internals can stay the same. If others are&lt;br /&gt;
working on modifiers at the same time as this project is underway, I will&lt;br /&gt;
be happy to assist them in using the new API. &lt;br /&gt;
&lt;br /&gt;
=== New Modifiers ===&lt;br /&gt;
&lt;br /&gt;
The new modifiers to be added as part of this project are Autosmooth, UV&lt;br /&gt;
Projection, and Displacement.&lt;br /&gt;
&lt;br /&gt;
The Autosmooth modifier will perform the same function as Blender's current&lt;br /&gt;
Mesh Auto Smooth option (splitting appropriate vertices and recalculating&lt;br /&gt;
normals to make edges sharper than a threshold angle appear sharp while the&lt;br /&gt;
rest appear smooth), but the results will be visible in Blender's 3D view&lt;br /&gt;
window without needing to perform a render. Additionally, the results will&lt;br /&gt;
be available to Python scripts for exporting purposes, making this modifier&lt;br /&gt;
very useful for 3D content creation. Other features to be added include&lt;br /&gt;
the ability to mark edges as sharp, and the ability to select different&lt;br /&gt;
vertex normal calculation methods. Once completed, this modifier could&lt;br /&gt;
replace the Mesh Auto Smooth button altogether, removing unnecessary&lt;br /&gt;
complexity from the render code.&lt;br /&gt;
&lt;br /&gt;
The UV Projection modifier will change a mesh's UV coordinates by projecting&lt;br /&gt;
them onto the mesh using the matrix of a helper object (as though the UV&lt;br /&gt;
texture was projected onto the mesh by a slide projector located at the&lt;br /&gt;
helper object's position). Among other things, this modifier would be very&lt;br /&gt;
useful for texturing meshes with photographs, as the projection could&lt;br /&gt;
provide perspective correction.&lt;br /&gt;
&lt;br /&gt;
The Displacement modifier will use a texture to displace vertices of a mesh.&lt;br /&gt;
The displacement could be simple (using the luminosity of the image to&lt;br /&gt;
displace in a single axis or direction), or more complex (for example, using&lt;br /&gt;
the R, G and B values of the image to displace vertices in the X, Y and Z&lt;br /&gt;
directions respectively. This is similar to the &amp;quot;Displacement&amp;quot; texture&lt;br /&gt;
mapping type, with the exception that the displaced geometry is visible&lt;br /&gt;
in the 3D view and can be accessed by Python scripts, exported or further&lt;br /&gt;
modified.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Project Schedule ==&lt;br /&gt;
&lt;br /&gt;
The first stage of the project will be to upgrade the modifier stack API.&lt;br /&gt;
This will involve a brief period of investigation to determine the best&lt;br /&gt;
approach, followed by a design and implementation stage.&lt;br /&gt;
&lt;br /&gt;
The second stage of the project will be to upgrade the old modifiers to use&lt;br /&gt;
the new modifier stack. This will also be a good opportunity to test the new&lt;br /&gt;
modifier stack API for completeness.&lt;br /&gt;
&lt;br /&gt;
The third stage of the project will be to implement the new modifiers. This&lt;br /&gt;
will also provide further feedback on the new API.&lt;br /&gt;
&lt;br /&gt;
I anticipate the first and second stages taking around half of the project&lt;br /&gt;
time, with the third stage taking the other half.&lt;br /&gt;
&lt;br /&gt;
== Bio ==&lt;br /&gt;
&lt;br /&gt;
I am a final year Computer Science/Computer Systems Engineering double degree&lt;br /&gt;
student at RMIT University in Melbourne, Australia. I have undertaken a&lt;br /&gt;
number of computer graphics subjects as part of my studies, creating a simple&lt;br /&gt;
3D engine and using Blender to create content for it.&lt;br /&gt;
&lt;br /&gt;
I have been interested in open source software for some time. I run Linux&lt;br /&gt;
on my home PC and do most of my software development in that environment.&lt;br /&gt;
I also dual-boot Windows so I can test cross-platform compatibility (this&lt;br /&gt;
was useful in finding a bug when working on the Array modifier).&lt;br /&gt;
&lt;br /&gt;
I have worked on two Blender programming projects: a Python-based exporter&lt;br /&gt;
for the HPX format written in Python, and an Array modifier written in C&lt;br /&gt;
(see http://mediawiki.blender.org/index.php/BlenderDev/ArrayModifier).&lt;br /&gt;
I have begun work on an Autosmooth modifier, but this is currently on hold&lt;br /&gt;
due to study commitments.&lt;br /&gt;
&lt;br /&gt;
I am comfortable programming in C, C++ and Java (having used them throughout&lt;br /&gt;
my university studies), and am familiar with Python. I have used Blender for&lt;br /&gt;
simple modelling tasks and program testing, and have a basic grasp of the&lt;br /&gt;
interface. Having programmed additions to Blender in both Python and C, I&lt;br /&gt;
am reasonably familiar with Blender's internals, particularly the modifier&lt;br /&gt;
code.&lt;br /&gt;
&lt;br /&gt;
I am excited about getting more involved with Blender development. I find&lt;br /&gt;
it very satisfying work, and look forward to being able to contribute more.&lt;/div&gt;</summary>
		<author><name>wiki&gt;Artificer</name></author>
		
	</entry>
</feed>