﻿<?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%3AMont29%2FDev%2FWeightVGroup%2FDev</id>
	<title>利用者:Mont29/Dev/WeightVGroup/Dev - 版の履歴</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%3AMont29%2FDev%2FWeightVGroup%2FDev"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mont29/Dev/WeightVGroup/Dev&amp;action=history"/>
	<updated>2026-08-01T13:35:47Z</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:Mont29/Dev/WeightVGroup/Dev&amp;diff=103221&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:Mont29/Dev/WeightVGroup/Dev&amp;diff=103221&amp;oldid=prev"/>
		<updated>2018-06-28T19:41:31Z</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日 (木) 19:41時点における版&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:Mont29/Dev/WeightVGroup/Dev&amp;diff=103220&amp;oldid=prev</id>
		<title>wiki&gt;Mont29: moved User:Mont29/WeightVGroup/Dev to User:Mont29/Dev/WeightVGroup/Dev</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Mont29/Dev/WeightVGroup/Dev&amp;diff=103220&amp;oldid=prev"/>
		<updated>2012-03-03T09:13:41Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Mont29/WeightVGroup/Dev&quot; class=&quot;mw-redirect&quot; title=&quot;利用者:Mont29/WeightVGroup/Dev&quot;&gt;User:Mont29/WeightVGroup/Dev&lt;/a&gt; to &lt;a href=&quot;/%E5%88%A9%E7%94%A8%E8%80%85:Mont29/Dev/WeightVGroup/Dev&quot; title=&quot;利用者:Mont29/Dev/WeightVGroup/Dev&quot;&gt;User:Mont29/Dev/WeightVGroup/Dev&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=WeightVGroup Modifiers=&lt;br /&gt;
==What?==&lt;br /&gt;
The WeightVGroup modifiers take a vertex group of the affected (mesh!) object, and modify its weights.&lt;br /&gt;
&lt;br /&gt;
Currently, they can:&lt;br /&gt;
*Edit: Map the weights (either linearly, or with a curve), add/remove vertices to/from the vertex group, if they have higher/lower enough weight, and clamp the output weights.&lt;br /&gt;
*Mix: Mix in another vertex group, or a constant value, using various operations (replace, add, difference, etc.).&lt;br /&gt;
*Proximity: set a weight computed from the distance of the vertices, or the whole object, to another “target” object (or its geometry) of the scene.&lt;br /&gt;
&lt;br /&gt;
All these operations can be further controlled by an influence value, and optionally by another vertex group or texture.&lt;br /&gt;
&lt;br /&gt;
You can then use this vertex group in other modifiers below in the stack.&lt;br /&gt;
&lt;br /&gt;
As a test, I used it on a plane, before a Wave modifier, using the camera as reference object. Here are small videos illustrating its effect:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vimeo&amp;gt;30187079&amp;lt;/vimeo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vimeo&amp;gt;30188564&amp;lt;/vimeo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vimeo&amp;gt;30188814&amp;lt;/vimeo&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
In fact, I codded this modifier as the first step of a project: to make subsurf level adapt depending on the distance between the vertices and a reference object (e.g. the camera…). This would allow e.g. to vary the level of details of a displace (e.g. terrain generation), based on how far from the camera are the deformed vertices.&lt;br /&gt;
&lt;br /&gt;
This would give a stack like that:&lt;br /&gt;
#A WeightVGProximity modifier sets the weights of a vertex group, depending on how far they are from the camera.&lt;br /&gt;
#A WeightVGEdit modifier maps the weights back into a valid range.&lt;br /&gt;
#A Subsurf modifier subdivides the grid based on this modified vertex group, e.g. from level 0 (most far away vertices) to level 10 (nearest ones) – obviously in discrete steps (I don’t intend to support float level of subdivisions!).&lt;br /&gt;
#A Displace modifier creates the terrain, with much more details near the camera than more far away… Many memory saved, esp. if the camera moves (and hence you cannot create a customized grid)!&lt;br /&gt;
&lt;br /&gt;
So, the logic would have been to implement first the vertex group influence upon subsurf, but when I looked to the subsurf code… Ack! Too complex for a first blender work! And hence, I first created the WeightVGroup modifiers – which have proved themselves useful in many other situations, I think… IMHO, this was missing!&lt;br /&gt;
&lt;br /&gt;
==Notes &amp;amp; Projects==&lt;br /&gt;
*I’d like to show modified weights in Weight Paint mode, but couldn’t find a way to do it for now (except directly modifying the original defgrp layer, which is definitively not a good idea!)…&lt;br /&gt;
*Texture can be used as mask… Ultimately, this might even allow for removing that tex stuff from Displace/Wave, let them use only weighted vgroups (sort of “factorization” of modifiers…).&lt;br /&gt;
*I’d also like to implement a way to apply custom py functions to weights, in the Edit modifier… But this won’t be easy to implement, I think – and it would heavily slow down things. So I’ll see this later if I have time too! Right now, you already have a curve to create custom mappings…&lt;br /&gt;
&lt;br /&gt;
==Release Log==&lt;br /&gt;
===0.0.1===&lt;br /&gt;
*Built and tested against svn 34776.&lt;br /&gt;
*Initial “release”.&lt;br /&gt;
&lt;br /&gt;
===0.0.2===&lt;br /&gt;
*Built and tested against svn 34904.&lt;br /&gt;
*Now using &amp;lt;code&amp;gt;BLI_strncopy&amp;lt;/code&amp;gt; instead of standard &amp;lt;code&amp;gt;strcopy&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===0.0.3===&lt;br /&gt;
*Built and tested against svn 34970.&lt;br /&gt;
*Added a modifier icon (not the best right now, but…).&lt;br /&gt;
&lt;br /&gt;
===0.1.0===&lt;br /&gt;
*Built and tested against svn 35181.&lt;br /&gt;
*Big improvements, with four new important functionality (see also the [[Doc:2.6/Manual/Modifier/Modify/Vertex Weight|Manual page]]):&lt;br /&gt;
**You can now use the reference object’s geometry to compute (minimal) distance to the vertices of the affected object.&lt;br /&gt;
**Also, the modifier can now add/remove vertices from the vertex group, based on their final computed weight. This makes this modifier also useful for modifiers that do not use vgroup weights, like e.g. the {{Literal|Mask}} one.&lt;br /&gt;
**There’s now a mapping power factor, which allows non-linear mappings between the dist and the weight factor.&lt;br /&gt;
**Finally, a new mode, {{Literal|Static}}, allows you to affect the vgroup with a constant weight factor, or another VGroup weights. This allows you, among other things, to do some basic actions on vgroup, like clamp, bust-out null-weighted vertices from the vgroup, etc.&lt;br /&gt;
*Added two new mix mode options, difference and average.&lt;br /&gt;
*Added an optional «revert» step on weightf, before mixing it with old weight.&lt;br /&gt;
*A small optimization in the mapping process, now caching the mapping factors to avoid re-computing them for each vertex!&lt;br /&gt;
*Another small optimization, now getting the full vertex array instead of getting each vertex one after the other…&lt;br /&gt;
*Other minor updates – note however that this might make files created with previous versions of this modifier somewhat incompatible (they’ll load, but some modifier’s property values might be lost…).&lt;br /&gt;
*Fixed the steps values for UI sliders, UI changes.&lt;br /&gt;
&lt;br /&gt;
===0.2.0===&lt;br /&gt;
*Built and tested against svn 35286.&lt;br /&gt;
*Another big improvements “release”, with two new important functionality (see also the [[Doc:2.6/Manual/Modifier/Modify/Vertex Weight|Manual page]]):&lt;br /&gt;
**Textures can now be used as weight factor sources as well (via a forth mode, {{Literal|Texture}}). Huh! Took me an hour to figure out that using texture ID implied to implement a foreachIDLink func!&lt;br /&gt;
**I Added an optional custom curve mapping to affect the weight factor before mixing it with old weight. Note this implied to edit writefile.c/readfile.c, to store/load that curve!&lt;br /&gt;
*Use Ref Object Geometry now also available in OBJ2OBJDIST mode (even though I’m not sure it will be most useful ;) ).&lt;br /&gt;
*Moved the MOD_WEIGHTVGROUP_ZEROFLOOR def from DNA_modifier_types.h to MOD_weightvgroup.c (had nothing to do in dna stuff…).&lt;br /&gt;
*Upgraded UI accordingly.&lt;br /&gt;
&lt;br /&gt;
===0.2.1===&lt;br /&gt;
*Built and tested against svn 35433.&lt;br /&gt;
*Changed “0” func pointers into NULL ones (in ModifierTypeInfo struct).&lt;br /&gt;
&lt;br /&gt;
===0.3.0===&lt;br /&gt;
*Built and tested against svn 38279.&lt;br /&gt;
*Major changes. Split the modifier in three:&lt;br /&gt;
**Edit (mapping, adding/removing vertices from vgroup, clamping).&lt;br /&gt;
**Mix (mix in another vgroup, or a constant value).&lt;br /&gt;
**Proximity (set weights from distance of object (or its vertices) to another object (or its geometry).&lt;br /&gt;
*Each modifier has an influence value, and optional vgroup or texture mask.&lt;br /&gt;
*Now using BVH for geometry proximity weighting.&lt;br /&gt;
*Slightly enhanced dm copy, by only copying MDEFORMVERT cdl (to only copy when cdl are org data yet remains to be done, though…).&lt;br /&gt;
&lt;br /&gt;
{{Warning/Important}}''Those changes make blend files saved with previous WeightVGroup versions « incompatible » – they will load, but WeightVGroup setups will be lost.''&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
*The [[Doc:2.6/Manual/Modifier/Modify/Vertex Weight|Manual page]].&lt;br /&gt;
*The [[User:Mont29/WeightVGroup|Main page]].&lt;/div&gt;</summary>
		<author><name>wiki&gt;Mont29</name></author>
		
	</entry>
</feed>