What I did today

Use NAND gates instead: http://en.m.wikipedia.org/wiki/NAND_logic

My de-generalization / de-abstraction work continues. I had an Action framework where all game entity behavior was encapsulated in concrete actions that inherited from an abstract Action base class that contained code for life cycle management and hooks for concrete Actions to extend. While this had some nice properties, it was hurting my brain from a code organization stand point because I had a proliferation of classes and had to have supporting classes (ActionSystem, ActionEntity) to make it work.

I am working through a much simpler model that wonā€™t necessarily give me as much flexibility but will give me what I need now, rather than what I think I may need. If it goes as planned it might be worth a write up in the Shared Code area to get feed back and to also serve as a cautionary tale of the pitfalls over premature generalization.

Today I added fonts into Crate sim 2017 .


http://i.imgur.com/ThnLtDb.jpg

click the image for full resolution

Added MORE multithreading to Verbal. There is no programming problem that cannot be solved by an extra layer of indirection, and an extra thread!

maybe they create more problems ?

Still trying to find the transformation that makes my seam carving cost function scale linearly with threads, instead of what it is currently doing: slowing down quadratically. Damn false sharingā€¦ :emo:
The energy function gets a nice 3.5x speedup though. :slight_smile:

Goodness things have been busyā€¦ Last week I attended the Samsung Developers Convention and ran into Phil Nickinson of Android Centralā€¦ On demoing the video capture / effects composition app he pulled out his video camera and we recorded an impromptu demo that was posted to Android Central (first outside press):
http://www.androidcentral.com/typhonrt-video-suite-looks-be-amazing-real-time-renderingrecording-platform

Iā€™m definitely looking forward to AnDevCon the rest of the week! For anyone attending Iā€™m giving a lightning talk on Wednesday evening about modern OpenGL on Android. I also have the opportunity to participate with a demo booth at the Intel sponsored after party Thursday evening 7:30 to 10pm. Stop by and check out the TyphonRT Video Suite. Iā€™ll have an LCD TV on hand and allow folks to get hands on with the video capture / effects composition app and have some fun. Wished I had time to get together a green screen backdrop for photo / video fun, but Iā€™m working hard on my demo code for my presentation.

My presentation on OpenGL ES 3.1 / compute shaders is on Friday at 10am. I am finishing up the source code takeaways today using the Nexus 9. What Iā€™m demoing and providing utility code for is using OpenGL ES 3.1 from Java / Android Studio. There presently is no information out there about how to do this and so far Iā€™ve found several tricks that make it possible that arenā€™t obvious in integrating compute shaders with standard Android mechanisms like loading textures from resources that can also be used in compute shaders. Iā€™m working real hard today in converting the advanced ComputeParticles demo (http://docs.nvidia.com/gameworks/index.html#gameworkslibrary/graphicssamples/opengl_samples/computeparticlessample.htm)
from the NVidia Gameworks samples today to Javaā€¦ Donā€™t know if Iā€™ll make it as itā€™s complex, but Iā€™m giving it a try. Source code and slides will be available on GitHub soon.

If you are planning to make it to AnDevCon give me a holler and letā€™s hang out and chat all things Android + modern graphics / video!

Also, some darn cool updates. I just installed Lollipop on the NVidia Shield tablet and yeah yeah yeah yeah YEAH MediaCodec works fine and my video engine is stable on the K1 / Lollipop. NVidia shipped the Shield w/ KitKat and a broken implementation of MediaCodec. So moving to Lollipop as the base OS for the video engine is really going to help in stability and hopefully I wonā€™t have to build as huge of a device testing lab.

And OMG Nexus 6 in the mailā€¦ Iā€™m trying to reroute it to a UPS station, so I can pick it up tomorrow morning!!! I still am amazed that a year ago I was using the Galaxy Nexus and now the Nexus 6 which is light years apart from the GN.

Booyah!

i remember when the galaxy nexus was big hype around steve jobs death, and it was postponed almost 6 months. that was like 3-4 years ago ?

Yeah Galaxy Nexus was released in the fall of '11 though there wasnā€™t that much of a delay if I recall. I happened to attend Google I/O in '12 and got one and the original Nexus 7. It replaced and was slightly better than the G2X / Tegra 2. I think that was the last year of good device giveaways for Android developers. I skipped the Nexus 4 (not that great of a GPU) and went straight to the Nexus 5 / Snapdragon 800. I started building my video engine on the Galaxy Nexus; har har harā€¦ About 1 filter (only some of them; forget blur!) running at ~24FPS while encoding. One couldnā€™t instantiate a MediaCodec encoder / decoder at the same time or one after another due to whatever native resources not being released / out of memory. Snapdragon 800 / 801 and the Adreno 330 GPU blew the door wide open for doing what Iā€™m doing today; up to 8 effects + plenty of window based ones (blur) at 30FPS (OK multiple blur / or kuwahara turned up can kill things). Itā€™s what I call the ā€œFBO bonanzaā€ as the Adreno 330 was the first phone form factor GPU that wasnā€™t heavily penalized for multiple FBO rendering in a single pass.

The Snapdragon 805 / 810 is like the tock of a tick; ~30% and 80% faster respectively of the Snapdragon 800.

Played with my balls :persecutioncomplex:

Super surprise. I changed my plans again! Tried to write down what my previous game needed and couldnt come up with anything, but wrote 6 pages of ideas for this game so perhaps it will be good. Gonna focus on mechanics before working on the art.

Attenuation & Range Calculation for point lights, finally.

Also a website for the game: http://th-media-lab.github.io/cross/index.html

Added in some ladders, pipes, wires and ducts. Iā€™ll have to try to get the people to actually do some work next.

Tidied up the pipe and wire graphics and started making a few pieces of equipment.

Relearning C++ā€¦ Stumbled upon function pointers. Class member function pointers. shudders


IntArray array(3);

void (IntArray::*funcPtr) (int, int);
funcPtr = &IntArray::setAt;

(array.*funcPtr)(0, 4);

IntArray is just a test wrapper class I made.

ā€œMethod referencesā€ are in Java 8 too:


Stream.of(1,2,3,4).map(Integer::bitCount).forEach(System.out::println);

(even works for this::someMethod!)

8zHRiWtrZtA

I made a post in the ā€˜What I did todayā€™ thread on JGO.

  • Jev

@kpars

Wow, thought you wonā€™t do that?!

@others

Implemented Display and Input, and Batcher in my SilenceEngine.

@kpars

Wow, I replied to you!! :stuck_out_tongue:

Added multi-document support to Paint.JAVA.

Got a semi-stable release coming soon too.