﻿<?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%3AAlexK%2FGsoc2012</id>
	<title>利用者:AlexK/Gsoc2012 - 版の履歴</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%3AAlexK%2FGsoc2012"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:AlexK/Gsoc2012&amp;action=history"/>
	<updated>2026-07-04T10:23:16Z</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:AlexK/Gsoc2012&amp;diff=136589&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:AlexK/Gsoc2012&amp;diff=136589&amp;oldid=prev"/>
		<updated>2018-06-28T20:49:23Z</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日 (木) 20:49時点における版&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:AlexK/Gsoc2012&amp;diff=136588&amp;oldid=prev</id>
		<title>wiki&gt;Ton: /* Downloads */</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:AlexK/Gsoc2012&amp;diff=136588&amp;oldid=prev"/>
		<updated>2013-12-31T15:59:16Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Downloads&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Porting Blenderplayer to Android and OpenGL ES=&lt;br /&gt;
&lt;br /&gt;
Original Proposal:&lt;br /&gt;
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2012/alexku/1&lt;br /&gt;
&lt;br /&gt;
http://wiki.blender.org/index.php/User:AlexK/Android (outdated)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Project Target&lt;br /&gt;
* Make OpenGL of game engine compatible with OpenGL ES&lt;br /&gt;
* Extend Android support (ghost)&lt;br /&gt;
* Make a small game chooser or packager&lt;br /&gt;
&lt;br /&gt;
Long Time Targets (Probably out of scope or as time allows)&lt;br /&gt;
* Make whole Blender OpenGL ES compatible&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P.S. &lt;br /&gt;
&lt;br /&gt;
I will try to setup OpenGL ES on my desktop, and do the GL port on there also, which might save me time deploying and debugging on Android.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
Various .apk installer versions of this project can be downloaded here:&lt;br /&gt;
&lt;br /&gt;
[http://download.blender.org/demo/android/ http://download.blender.org/demo/android/]&lt;br /&gt;
&lt;br /&gt;
==Progress Report ==&lt;br /&gt;
===Week 1 (May 21-25)===&lt;br /&gt;
* Port headless Blender and basic libs (done)&lt;br /&gt;
* Test Python port (Done thanks to PY4A proj. Still need compile it myself)&lt;br /&gt;
* Update SVN from 2.62 (done)&lt;br /&gt;
* SDL configured and tested for Blender (done)&lt;br /&gt;
* Compile gameplayer (done)&lt;br /&gt;
* Almost finish dynamic loader with nucleusbridge&lt;br /&gt;
** nucleusbridge is used to run makesdna and makesrna &lt;br /&gt;
* Design a system to easily test partiality ported OpenGL ES code.&lt;br /&gt;
** Working on it. Wrote smart stub for GL. More Integration with glew is still needed.&lt;br /&gt;
* Configure and consolidate build system/apk structure (nearly done for cmake)&lt;br /&gt;
** Working on it, so it would find libs. After it is done will commit&lt;br /&gt;
* Writing compilation instruction&lt;br /&gt;
* Started debugging BGE openGL code &lt;br /&gt;
&lt;br /&gt;
=== Week 2 (May 28- June 1)===&lt;br /&gt;
* Finished SDL port config to enable OpenGL 2.0&lt;br /&gt;
** Fixed exit on rotate&lt;br /&gt;
* Finished Smart OpenGL Stub. Now works as intended.&lt;br /&gt;
** Also fixed couple issue I had with OpenGL&lt;br /&gt;
* Added support OpenGL ES 2.0 on linux&lt;br /&gt;
* Did documentation and tested how to build on Android&lt;br /&gt;
** [[User:AlexK/Gsoc2012/Building_Blender_for_Android|Building Blender for Android]]&lt;br /&gt;
* Studied/Debug GE code.&lt;br /&gt;
**  A little more complicated than what I expected with all branching and culling test&lt;br /&gt;
* Make a solid monkey for Android's BGE&lt;br /&gt;
** http://www.pasteall.org/pic/show.php?id=32563&lt;br /&gt;
***No light, no material, no position&lt;br /&gt;
&lt;br /&gt;
=== Week 3 (June 4-8)===&lt;br /&gt;
* Wrote matrix software stack&lt;br /&gt;
** Standard GL functions like glPopMatrix&lt;br /&gt;
** Some needed glu functions like gluLookAt&lt;br /&gt;
** Ported whole GE to it&lt;br /&gt;
** Still some problems like with dome&lt;br /&gt;
** Now Android has a &amp;lt;strike&amp;gt;pro&amp;lt;/strike&amp;gt;perspective &lt;br /&gt;
*** http://www.youtube.com/watch?v=l5awnph3Ro0&lt;br /&gt;
** Added quad conversion for usual meshes (probably is not complete)&lt;br /&gt;
*Had few prroblems&lt;br /&gt;
** Spend a few hours why render was weird to find out that I forgot to enable Z=buffer in EGL&lt;br /&gt;
** Qt+Chrome+gcc &amp;gt; 4.0  GB and my computer is prone to freezes. Also ext4 is not atomic resulting in lost of ~2.5 hour of work (OpenGL ES 2.0 tester).&lt;br /&gt;
* Started planing default shaders management system&lt;br /&gt;
** http://wiki.blender.org/index.php/User:AlexK/Gsoc2012/Design (Will update soon)&lt;br /&gt;
&lt;br /&gt;
=== Week 4 (June 11-15)===&lt;br /&gt;
* Fix Android App (allow install without rooting)&lt;br /&gt;
* Few fixes to matrix stack (+addition to math library)&lt;br /&gt;
* Prepared and committed almost all my work (took much longer than I expected )&lt;br /&gt;
* Converted part of GLEW extension flags to GPU flags&lt;br /&gt;
* Studied GE GLSL&lt;br /&gt;
** Make tested, the compilation on my phone is 0.03 S which is not a lot&lt;br /&gt;
** Converted/disabled GLSL code to make compilable on phone.&lt;br /&gt;
** Existing GLSL shaders works, but without lighting&lt;br /&gt;
** Converted shader code to ES/modern, dropping ARB for now&lt;br /&gt;
*** With current openGL stub system, it is problematic to have both&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 5 (June 18-22)===&lt;br /&gt;
* Added initial SDL input&lt;br /&gt;
** Some SDL functions don't work as expected &lt;br /&gt;
* Fixed Z-buffer&lt;br /&gt;
** Turns out SDL for Android is terrible &lt;br /&gt;
** It was setting wasn't respecting own settings&lt;br /&gt;
** I'm investigating to have our own Ghost implementation (as original was planned)&lt;br /&gt;
** It will also allow easier installation (like py4a): One click download with WiFi&lt;br /&gt;
* Created simple &amp;quot;Blender Archive&amp;quot; file format for packaging files&lt;br /&gt;
** It creates single installation file which is copied into internal directory.&lt;br /&gt;
* GLSL lighting works&lt;br /&gt;
* Added GLSL texture support&lt;br /&gt;
** with refactoring code (needs to be coordinated with Jason, then commit)&lt;br /&gt;
** Remove all ARB shading code (brecht approved it). Maybe we have old code if user base is big.&lt;br /&gt;
* Clean up for matrix code&lt;br /&gt;
* Icon fun https://svn.blender.org/svnroot/bf-blender/trunk/lib/android/armv7-a_9/aghosty-sdl/res/drawable-xhdpi/icon.png!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Week 6 (June 25-29)===&lt;br /&gt;
* First Android release!&lt;br /&gt;
* Refactor OpenGL extensions. So gpu** calls gl** or gl**ARB if graphics card doesn't support it.&lt;br /&gt;
** Jason made it compatible with Windows.&lt;br /&gt;
* Few small OpenGL ES state fixes&lt;br /&gt;
* Added VBO support. &lt;br /&gt;
* Working on python GLSL&lt;br /&gt;
* Added matrix rotation + double multiplication&lt;br /&gt;
** +Converted blendfont to our matrix stack.&lt;br /&gt;
* Fun merges fixes with my local branch&lt;br /&gt;
* Worked one day on native Ghost&lt;br /&gt;
** Made EGL in Java&lt;br /&gt;
** Designed event queue. (hopefully it will work out very nicely. No malloc, only essential mutex)&lt;br /&gt;
** There will be only one call from c to java (SwapBuffers). Many calls will be from java to c, events calls.&lt;br /&gt;
* Designing Standard shading system (for text, lines) instead of glColor, glTexture...&lt;br /&gt;
&lt;br /&gt;
=== Week 7 (July 2-6)===&lt;br /&gt;
* Python GLSL converted to gpu/Android&lt;br /&gt;
** Not fully tested&lt;br /&gt;
* DNA bug&lt;br /&gt;
** I spent a day tracking down a crash to find out that dna was out of sync.&lt;br /&gt;
** On a bright side:&lt;br /&gt;
* I learned how to use Android's GDB&lt;br /&gt;
** Through gdbserver on the device&lt;br /&gt;
** There is a big lack of holistic documentation. I will post instructions later.&lt;br /&gt;
* Native Ghost&lt;br /&gt;
** ~60% complete&lt;br /&gt;
** Figure out how to call java functions from C&lt;br /&gt;
** And reverse way. So I can call SwapBuffers or have onKey event.&lt;br /&gt;
** A little bit tricky with Java memory management in C&lt;br /&gt;
** Implemented a nice, fast event queue&lt;br /&gt;
*** Did testing. Seems to be thread safe if only one thread is writing and only one is reading.&lt;br /&gt;
* Figured out the problem with DNA/RNA generation on unrooted devices&lt;br /&gt;
&lt;br /&gt;
=== Week 8 (July 9-13)===&lt;br /&gt;
* Java-C side with Ghost is working together&lt;br /&gt;
** Apparently EGL context is not valid from another thread.&lt;br /&gt;
*** Had to refractor code&lt;br /&gt;
*** Still, we have support for only one display/Window.&lt;br /&gt;
** Had to track down redrawing bug which took a lot of time&lt;br /&gt;
* Native mouse input is implemented.&lt;br /&gt;
** Mouse motion&lt;br /&gt;
** Events system is very flexible and extendable&lt;br /&gt;
* makesdna and makesrna is rewritten&lt;br /&gt;
** Using Intent&lt;br /&gt;
** Work on non rooted phones&lt;br /&gt;
** Separate activity&lt;br /&gt;
* Started working on opening .blend file&lt;br /&gt;
** +Installation file&lt;br /&gt;
** Based on &amp;quot;Intent&amp;quot; filters&lt;br /&gt;
&lt;br /&gt;
P.S.&lt;br /&gt;
Currently there are limitations for Ghost system&lt;br /&gt;
* Only one window is supported&lt;br /&gt;
* You cannot restart Blender from inside the app&lt;br /&gt;
** memory leaks, lib loads, function registration etc.&lt;br /&gt;
&lt;br /&gt;
=== Week 9 (July 16-20)===&lt;br /&gt;
* Added support for opening .blend &lt;br /&gt;
* Created initial CenterControl activity (app menu) from which files can be also  selected&lt;br /&gt;
** In future we can add update/downloader/&amp;quot;blend store&amp;quot; functionality to it&lt;br /&gt;
** And also latter will have options how to start a game&lt;br /&gt;
* .bla are now .zip files &lt;br /&gt;
** Unpackaged to internal folder&lt;br /&gt;
*** A little insecure&lt;br /&gt;
* Wrote video mode selections&lt;br /&gt;
** App tries to get highest video mode available starting from 8,8,8 color + 24 depth + 8 alpha&lt;br /&gt;
* Added single lib installation for developers&lt;br /&gt;
* A lot ghost/native fixes&lt;br /&gt;
* Was able to get GE working in full blender (on linux openGL ES)&lt;br /&gt;
* Started Accelerometer and gyroscope API&lt;br /&gt;
&lt;br /&gt;
=== Week 10 (July 23-27)===&lt;br /&gt;
* Fix for initial screen size&lt;br /&gt;
* Added ability to download blender from inside the app&lt;br /&gt;
** Was investigating packing libraries into apk itself.&lt;br /&gt;
* Added accelerometer and  gyroscope support on android side&lt;br /&gt;
** Did a little of reorganization  of android app and jni&lt;br /&gt;
* Added accelerometer and  gyroscope to ghost&lt;br /&gt;
** Data stored as 3d vector&lt;br /&gt;
** Or smaller length according to the type&lt;br /&gt;
** So it is easily extendable for other sensors&lt;br /&gt;
** Had trouble with implementing sensor inside GE logic&lt;br /&gt;
*** Hopefully Mitchell Stoke or Dalai Felinto will help me out next week&lt;br /&gt;
* Did some openGL wrapper addition&lt;br /&gt;
** Trying to make more flexible for adding OpenGL 4.2 on desktop&lt;br /&gt;
* OpenGL bug hunting/fixing&lt;br /&gt;
** Alpha now works in Swiss and GLES&lt;br /&gt;
* Did optimization and game testing&lt;br /&gt;
** Was able to speed up GE &lt;br /&gt;
** With -02 (for physics)&lt;br /&gt;
** VBO improved performance&lt;br /&gt;
** Use System Framerate decreases performance between 1/2 and 1/3 times (Blender issue)&lt;br /&gt;
&lt;br /&gt;
=== Week 11 (July 30- August 3)===&lt;br /&gt;
* All libs are bundled in one apk&lt;br /&gt;
** The future releases will automatically overwrite libs (no need to delete the app)&lt;br /&gt;
* Moved python also to apk&lt;br /&gt;
* Did part of Sensor manager &lt;br /&gt;
** 3 step hierarchy in GE is confusing (and probably unnecessary)&lt;br /&gt;
* Resolved some merges conflicts&lt;br /&gt;
* Spend a lot of time fixing crashes on Tegra 2&lt;br /&gt;
** All libs were built with float optimization with NDK r7&lt;br /&gt;
** NDK 7b fails on Tegra 2&lt;br /&gt;
*** Because gnu stl (including math functions) were built with NEON optimization in NDK&lt;br /&gt;
** Updated to r8b&lt;br /&gt;
*** Uses gcc 4.6  &lt;br /&gt;
*** Has bug http://code.google.com/p/android/issues/detail?id=35279&lt;br /&gt;
*** Tegra 2 also fails due to missing __aeabi_ldiv0 function&lt;br /&gt;
*** Also, blenderplayer lib was suspiciously smaller&lt;br /&gt;
**  Downgraded to r8&lt;br /&gt;
*** Solved the problem&lt;br /&gt;
** Will file a bug report&lt;br /&gt;
* Ported whole Blender to soft matrix stack (only GE was ported before)&lt;br /&gt;
** New gpu matrix functions&lt;br /&gt;
*** Rotate-s and gpuProject&lt;br /&gt;
** Still few bugs to resolve&lt;br /&gt;
** also GE clean up/optimization &lt;br /&gt;
&lt;br /&gt;
=== Week 12 (August 6 - 10)===&lt;br /&gt;
* Merged software matrix stack&lt;br /&gt;
** Resolved selection and other important issues&lt;br /&gt;
** Still we relay on gluUnProject for now&lt;br /&gt;
* Make VBO compatibility interface (if glMapBuffer is available)&lt;br /&gt;
** Very simple for now&lt;br /&gt;
* Renamed gpu functions to gpu_gl for clarity&lt;br /&gt;
* Added gpu view for setting and clearing the view&lt;br /&gt;
** To avoid setting REAL_GL_MODE for GLES&lt;br /&gt;
* Converted unsupported drawing types like GL_POLYGON, GL_QUAD_STRIP, and some GL_QUADS to analogus.&lt;br /&gt;
** Did testing, doesn't effect rendering&lt;br /&gt;
** Multiple drawing of GL_QUADS are harder. Probably, I will write converter.&lt;br /&gt;
** GL_QUADS are depricated. With n-gons there is no advantage of GL_QUADS. They should be probably removed eventually from code.&lt;br /&gt;
* Was investigating what should be done to complete the port.&lt;br /&gt;
** A lot of single-time functions which aren't in ES&lt;br /&gt;
** http://wiki.blender.org/index.php/User:AlexK/Gsoc2012/GPU_ToDo (no in order of importance)&lt;br /&gt;
* Code clean up&lt;br /&gt;
&lt;br /&gt;
=== Week 13 (August 13 - 17)===&lt;br /&gt;
* Visual Report&lt;br /&gt;
** http://pasteall.org/pic/show.php?id=36691&lt;br /&gt;
* Fixed glMapBuffer on Android&lt;br /&gt;
* Some code rearrangements to support OpenGL 3.0+ with soft switch in the future&lt;br /&gt;
* Added emulations to GL_QUADS&lt;br /&gt;
** by using glDrawElements with prebaked map, much better than sending 2 triangles.&lt;br /&gt;
* Initial  builtin shaders/gpuImmediate OpenGL ES implementation&lt;br /&gt;
** Simple color shader is enough for most elements (although inefficient due to redraws for effects)&lt;br /&gt;
** Alpha Texture shader for text.&lt;br /&gt;
** Was looking how many shaders do we need:&lt;br /&gt;
*** 4-5 flat shaders for UI&lt;br /&gt;
*** 3 shaders * number of light sources * (alpha blending?) for 3d&lt;br /&gt;
** Icons are done with deprecated gl*Pixels (needs to be converted to texture)&lt;br /&gt;
** Blender on my phone crash on most of the start up files due to driver implementation/error not-checking&lt;br /&gt;
*** But it works on Mesa linux GL ES driver&lt;br /&gt;
*** And when the blender works, I can open the files that crash on start up&lt;br /&gt;
*** Will look into it.&lt;br /&gt;
* Started documentation on code and how to build for Android &lt;br /&gt;
** Will finish over the weekend.&lt;br /&gt;
&lt;br /&gt;
=== P.S. ===&lt;br /&gt;
* There is a lot to be done&lt;br /&gt;
** From graphic code and UI+multitouch changes to Android API and iOS port&lt;br /&gt;
* I plan to take a 1-2 weeks break from coding &lt;br /&gt;
** After it, it probably will be a weekend project as University will start&lt;/div&gt;</summary>
		<author><name>wiki&gt;Ton</name></author>
		
	</entry>
</feed>