﻿<?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=Dev%3ASource%2FPhysics%2FSprint</id>
	<title>Dev:Source/Physics/Sprint - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ASource%2FPhysics%2FSprint"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Physics/Sprint&amp;action=history"/>
	<updated>2026-06-08T08:29:10Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Source/Physics/Sprint&amp;diff=56134&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Physics/Sprint&amp;diff=56134&amp;oldid=prev"/>
		<updated>2018-06-28T17:52:20Z</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:52時点における版&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=Dev:Source/Physics/Sprint&amp;diff=56133&amp;oldid=prev</id>
		<title>2014年8月19日 (火) 00:42にwiki&gt;Britaによる</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Source/Physics/Sprint&amp;diff=56133&amp;oldid=prev"/>
		<updated>2014-08-19T00:42:32Z</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;{{NiceTip&lt;br /&gt;
|This page may be outdated&lt;br /&gt;
|Last edit on this page was on 2007, it is probably outdated.&amp;lt;br/&amp;gt;&lt;br /&gt;
If you have questions, ask in #blendercoders at IRC}}&lt;br /&gt;
&lt;br /&gt;
=Sprint=&lt;br /&gt;
==Common Solver API==&lt;br /&gt;
* Simulation rebuild (modified solver setting, re-run the solver with unchanged data)&lt;br /&gt;
* Total rebuild (modified geometry, would reallocate, rebuild from scratch)&lt;br /&gt;
* One frame step forward will NEVER recalculate the whole simulation.&lt;br /&gt;
* Larger or negative frame steps, may require simulation recalculation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* objects need a new flag for solver for rebuild and recalc.&lt;br /&gt;
* flags work in the same way as they do now for object updating. Solvers need a..&lt;br /&gt;
&lt;br /&gt;
flag for total rebuild.&lt;br /&gt;
flag to rerun simulation (with new settings) and a callbacks for each.&lt;br /&gt;
&lt;br /&gt;
The SolverAPI will manage running these callbacks when needed, the solvers will not need to trigger these events.&lt;br /&gt;
&lt;br /&gt;
==Collision System==&lt;br /&gt;
* Multiple solvers can access.&lt;br /&gt;
* objects must have a flag that they are physics type. This will this will flag the objects as needing data from t-1, t+1 (for instance).&lt;br /&gt;
when object_update is called the extra physics data is calculated, so all solver's have this data when they start.&lt;br /&gt;
&lt;br /&gt;
* collision system can use groups for defining which objects interact with eachother. (solves collision system overload problem, this may not be a big problem)&lt;br /&gt;
&lt;br /&gt;
===Collision Response===&lt;br /&gt;
* dynamic &amp;lt;&amp;gt; dynamic - need to have a collision response system so different solvers can interact.&lt;br /&gt;
&lt;br /&gt;
===Rigid Body (Solver)===&lt;br /&gt;
''Note'', Object level dynamics will not interact with vertex level dynamics (cloth, particles, sodtbody) - this is a real limitation but no simple solution.&lt;br /&gt;
* Bullet does not support feedback from other systems (its not planned as a part of bullet, and erwin does not want to add this because its not needed for xbox, ps3)&lt;br /&gt;
* Could be made a part of the animation system. other solvers would treat rigid body animation like IPO's.&lt;br /&gt;
* Rigid body should evaluate animated objects before collision objects so ipo's.&lt;br /&gt;
&lt;br /&gt;
===Global Collision Cache===&lt;br /&gt;
* The modifier stack is used to build this data, each objects stack can have one level set where the data is added to the collision cache.&lt;br /&gt;
* API functions to add, remove.&lt;br /&gt;
* Blender needs to maintain a physics world.&lt;br /&gt;
* It should be able to contain collision (previous and next frame data for interpolation)&lt;br /&gt;
* static data is optimized for collision detection (quadtree). (not animated data such as armatures etc, they can use basic speedups like face bounding boxes)&lt;br /&gt;
&lt;br /&gt;
** add object, remove object.&lt;br /&gt;
&lt;br /&gt;
** Static objects&lt;br /&gt;
&lt;br /&gt;
* All solvers can use the physics world for collision detection.&lt;br /&gt;
&lt;br /&gt;
* Each collision system needs to use the same method of including/excluding objects from simulation (flag/groups/layers).&lt;br /&gt;
&lt;br /&gt;
===Collision===&lt;br /&gt;
* Separate Static/Dynamic collisions.&lt;br /&gt;
* Collision system uses the 'physics world'&lt;br /&gt;
* API Call for a list of collisions&lt;br /&gt;
** Point of collision&lt;br /&gt;
** Normal&lt;br /&gt;
** Speed&lt;br /&gt;
** Time of collision&lt;br /&gt;
** Type of collision (vert/edge/face)&lt;br /&gt;
** Particles need to now which face and the faces UV.&lt;br /&gt;
&lt;br /&gt;
* Collision data is collected from a modifier (can be selected similar to render buttons).&lt;br /&gt;
''Note, Genscher has already implicated many of these features''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Solver's==&lt;br /&gt;
* Each solver has an entry in the modifier stack.&lt;br /&gt;
===Modifiers===&lt;br /&gt;
* Simulations are modifiers (layers) - however they will may be calculated in groups. rather then one at a time.&lt;br /&gt;
* We need a way NOT to recalculate the entire stack whenever a setting is changed. - This is not a requirement for working, but will speed up operation greatly.&lt;br /&gt;
* We need to be able lock modifiers to use cache (disable automatic recalculation), for faster editing.&lt;br /&gt;
* Keep in mind modifier nodes may be implemented later. NOT apart of this project.&lt;br /&gt;
&lt;br /&gt;
==Cache API==&lt;br /&gt;
* This is so the system can respond fast on loading - the system has already calculated the data - The cache will rebuild if the cache files are not there.&lt;br /&gt;
* Cache is stored on disk (similar to textures) A possibility later on could be to save he bake in the blend. this is managed by blender and the solver will not worry about - but is not a requirement.&lt;br /&gt;
* Blender has an API solvers can use for 'display caching'&lt;br /&gt;
* This is because the user should be able to load a blend file at frame 500, and go to 499 without regenerating the whole simulation.&lt;br /&gt;
* Each solver can write cache to a file, the solver will provide handlers for read and write.&lt;br /&gt;
* Cache can be stored compressed - gzip (like fluid)&lt;br /&gt;
* Cache memory management can be improved later on (keep the next frame in memory etc)&lt;br /&gt;
* File names for temp files - need to be unique - can be a hex of the name, implementation detail.&lt;br /&gt;
&lt;br /&gt;
===Rendering Cache===&lt;br /&gt;
* The rendering engine should be able to generate cache before rendering (on demand). - so the renderfarm can generate all physics.&lt;br /&gt;
* Rendering and display cache will need to be separate.&lt;br /&gt;
&lt;br /&gt;
==Editable Bake?==&lt;br /&gt;
We use jahka's the current particle system way of working - by redirecting transform function to the mesh-vertex-keys.&lt;br /&gt;
&lt;br /&gt;
KeyBlocks are stored on the mesh. we need a way to map vertexkeys to modifiers - this could be done by making names unique or by referencing indices and then maintaining them to be correct.&lt;br /&gt;
&lt;br /&gt;
==Units==&lt;br /&gt;
* We could add conversion function per scene. 1BU == 1mm. 1BU == 1km.&lt;br /&gt;
* Solvers should give human understandable presets - Silk, Canvas as well as typing in numbers like Fluid/SSS.&lt;br /&gt;
* Each solver can have a scaling factor for time, distance and gravity.&lt;br /&gt;
* Better units in blender would be an advantage but are not %100 needed.&lt;br /&gt;
&lt;br /&gt;
==Cloth==&lt;br /&gt;
* Cant be merged with SoftBody&lt;br /&gt;
* Would be an advantage to use cloth for hair (no stretching)&lt;br /&gt;
&lt;br /&gt;
==Particles==&lt;br /&gt;
Priorities for peach&lt;br /&gt;
* Write new caching system&lt;br /&gt;
* Implement in particle branch.&lt;br /&gt;
* Solve mapping particles.&lt;br /&gt;
&lt;br /&gt;
* Hair does not use cache, data edited directly.&lt;br /&gt;
* Cloth and softbody always edited in editmode, particles and hair always edited in particle mode.&lt;br /&gt;
* Softbody handles all hair dynamics.&lt;br /&gt;
* Hair's softbody will not have an entry in the modifier stack.&lt;br /&gt;
&lt;br /&gt;
==OpenMP==&lt;br /&gt;
* OpenMP is ok to use.&lt;br /&gt;
* Get animation system threaded first.&lt;br /&gt;
* There are cases where multithreading is a big advantage - 'per animation' or 'per modifier' &lt;br /&gt;
&lt;br /&gt;
==Todo==&lt;br /&gt;
* Physics World&lt;br /&gt;
* Collision library&lt;br /&gt;
* SolverAPI (blackbox)&lt;br /&gt;
* Generic Solver Cache System&lt;br /&gt;
&lt;br /&gt;
= 2.46 release proposal for pointcache =&lt;br /&gt;
&lt;br /&gt;
Since the physics sprint we have implemented some of our goals.&lt;br /&gt;
&lt;br /&gt;
==Problems==&lt;br /&gt;
* Point cache becomes out of date too easily, blender does not invalidate pointcache when it should.&lt;br /&gt;
* Point cache does not make a distinction between render and display cache. (which can be different depending on modifier settings)&lt;br /&gt;
&lt;br /&gt;
==Solutions==&lt;br /&gt;
* Have 2 pointcaches, one for display and another for rendering.&amp;lt;br&amp;gt;This seams a very inelegant solution, however the render world can contain totally separate geometry from the render world therefor there needs to be 2 separate pointcaches.&lt;br /&gt;
* Have a function for baking all pointcache (render level and/or display level)&lt;br /&gt;
* Have an option to clear all pointcache in the blend file (This should not be used to workaround existing problems with displaying invalid).&lt;/div&gt;</summary>
		<author><name>wiki&gt;Brita</name></author>
		
	</entry>
</feed>