﻿<?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%3ARef%2FGoogleSummerOfCode%2F2005%2FOde_Physics_Integration</id>
	<title>Dev:Ref/GoogleSummerOfCode/2005/Ode Physics Integration - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=Dev%3ARef%2FGoogleSummerOfCode%2F2005%2FOde_Physics_Integration"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&amp;action=history"/>
	<updated>2026-05-04T11:49:32Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=Dev:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&amp;diff=41972&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&amp;diff=41972&amp;oldid=prev"/>
		<updated>2018-06-28T17:45:18Z</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:45時点における版&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:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&amp;diff=41971&amp;oldid=prev</id>
		<title>wiki&gt;Mindrones: moved Dev:Ref/GSoC/2005/Ode Physics Integration to Dev:Ref/GoogleSummerOfCode/2005/Ode Physics Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=Dev:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&amp;diff=41971&amp;oldid=prev"/>
		<updated>2010-10-24T08:36:07Z</updated>

		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/Dev:Ref/GSoC/2005/Ode_Physics_Integration&quot; class=&quot;mw-redirect&quot; title=&quot;Dev:Ref/GSoC/2005/Ode Physics Integration&quot;&gt;Dev:Ref/GSoC/2005/Ode Physics Integration&lt;/a&gt; to &lt;a href=&quot;/Dev:Ref/GoogleSummerOfCode/2005/Ode_Physics_Integration&quot; title=&quot;Dev:Ref/GoogleSummerOfCode/2005/Ode Physics Integration&quot;&gt;Dev:Ref/GoogleSummerOfCode/2005/Ode Physics Integration&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== ODE Physics In Animation System  ==&lt;br /&gt;
&lt;br /&gt;
This Project will deal with the integration of a dynamic physics engine with collisions and joints into Blender to enable the animation of liquids. &lt;br /&gt;
&lt;br /&gt;
*The Summer-of-Code proposal can be found here: http://www-scf.usc.edu/~lewist/googleapp.txt The design has changed much since then. &lt;br /&gt;
*Information regarding the proposed physics engine can be found here: http://www.ode.org/ode-latest-userguide.html&lt;br /&gt;
&lt;br /&gt;
The goals stated in the proposal were to allow animators to make use of: (a) collision and (b) joint functionality in animation. &lt;br /&gt;
&lt;br /&gt;
Progress Progress so far has been rather limited, and is largely still in the phases of design and pseudo-code. The physics objects have been designed and some work has been done on writing code to convert physics motion into animation IPOs. &lt;br /&gt;
&lt;br /&gt;
Workflow In order to apply the blender physics to an animation, the animator will need to first apply a bounding primitive to the object, much as is currently achieved through the game logic GUI. This will create a corresponding physics object which will later be used to generate a body (with user defined mass and velocity, defaulting to one and zero respectively) and primitive geom (sphere, cube or cylinder, user defined via dropdown menu). Joints will be similarly added by means of an &amp;quot;Add joint&amp;quot; button, which will then introduce options such as joint type, bodies to be joined and axes/anchors associated with the joint. This information will be stored in a blender joint class. When it is time to create the animation, the physics and joint classes will be converted into ODE geoms, bodies and joints. &lt;br /&gt;
&lt;br /&gt;
=== Implementation  ===&lt;br /&gt;
&lt;br /&gt;
Integration into the Blender code I intend to create a physics object and constraint (joint) object in seperate physobj.h and physjoint.h header files. Instances of the physics object class can then be created for specific blender objects, much as bounding solids are currently created for the game system. This will be managed in a similar way, but the code will be separate. The classes will contain all the data pertinent to the implementation of collisions and joints respectively, and have functions to convert to physics engine data. These will be called from their own UI and contained in their own header files, such that interaction with other blender code will be minimal. The conversion from physics simulation to animation will be a separate function which will be called from the blender animation code. &lt;br /&gt;
&lt;br /&gt;
==== Physobj.h Pseudo-code Overview  ====&lt;br /&gt;
&lt;br /&gt;
Physics Object Abstract Data Type Variables &lt;br /&gt;
&lt;br /&gt;
**int Boundtype &lt;br /&gt;
**Real dimensions[3] //e.g. radius, width, height, etc of bounding object &lt;br /&gt;
**Real x &lt;br /&gt;
**Real y &lt;br /&gt;
**Real z &lt;br /&gt;
**Real Mass &lt;br /&gt;
**Real Speed &lt;br /&gt;
**Matrix Rotation &lt;br /&gt;
*dGeomID [[BlenderDev/MyGeom|MyGeom]] &lt;br /&gt;
**BlendID [[BlenderDev/MyBlend|MyBlend]]&lt;br /&gt;
&lt;br /&gt;
Methods &lt;br /&gt;
&lt;br /&gt;
*Constructor (Boundtype, BlendID) &lt;br /&gt;
*Mutators &lt;br /&gt;
*SetPosition(x,y,z) &lt;br /&gt;
*SetX(x) &lt;br /&gt;
*SetY(y) &lt;br /&gt;
*SetZ(z) &lt;br /&gt;
*SetMass(Mass) &lt;br /&gt;
*SetSpeed(Speed) &lt;br /&gt;
*SetRotation(Rotation) &lt;br /&gt;
*SetGeomID(GeomID) &lt;br /&gt;
*SetBlendID(BlendID) &lt;br /&gt;
*ToOde() &lt;br /&gt;
*CreateGeom(Boundtype, dimensions) &lt;br /&gt;
*CreateBody(x,y,z,Mass, Speed, Rotation) &lt;br /&gt;
*Associate &lt;br /&gt;
*Return GeomID &lt;br /&gt;
*FromOde() &lt;br /&gt;
*currBody=dGeomGetBody(MyGeom) &lt;br /&gt;
*dBodyGetPosition(currBody) &lt;br /&gt;
*dBodyGetRotation(currBody)&lt;br /&gt;
&lt;br /&gt;
==== Physjoint.h Pseudo-code Overview  ====&lt;br /&gt;
&lt;br /&gt;
Joint Abstract Data Type Variables &lt;br /&gt;
&lt;br /&gt;
**int Type &lt;br /&gt;
**dBodyID Attached[2] &lt;br /&gt;
**Vector3 DOFs[4]&lt;br /&gt;
&lt;br /&gt;
Methods &lt;br /&gt;
&lt;br /&gt;
*Constructor(type) &lt;br /&gt;
*Mutators &lt;br /&gt;
*SetType(type) &lt;br /&gt;
*SetAttached(Body1,Body2) &lt;br /&gt;
*SetDOFs(Anchor, Anchor2, Axis, Axis2) &lt;br /&gt;
*ignore if not relevant to type &lt;br /&gt;
*default to 0 &lt;br /&gt;
*ToOde() &lt;br /&gt;
*switch(type) &lt;br /&gt;
*currJoint=dJointCreateFixed(World, 0) &lt;br /&gt;
*dJointSet&amp;amp;lt;type&amp;amp;gt;&amp;amp;lt;DOF&amp;amp;gt;(currJoint, x, y, z) &lt;br /&gt;
*dJointAttach(currJoint, Attached[0], Attached[1])&lt;br /&gt;
&lt;br /&gt;
-- [[BlenderDev/ThomasLewis|ThomasLewis]] - 27 Jul 2005 &lt;br /&gt;
&lt;br /&gt;
[[Category:Physics]]&lt;/div&gt;</summary>
		<author><name>wiki&gt;Mindrones</name></author>
		
	</entry>
</feed>