Another Type of Shutter Failure on Canon A-Series SLRs
The popular one
There are many vintage cameras that were popular back then and are still popular today (with the recent resurgence of analog photography among Gen Z and millennials, myself included in the latter). One of them is the Canon AE-1, and its siblings.
This ever-popular SLR camera sits at a place in the history of this technology where the design of the old times is still present, but the electronics are starting to become an integral part of how the camera functions.
Darkroom Notes
I have not been very active writing on this website. But I have decided to start writing a bit more about random hobbies of mine.
In the last year or so, I started playing with old cameras, and with somewhat toxic chemicals … š
I do black and white and color development. I have a lot to learn about wet printing and enlargement techniques still.
I do not really plan to publish pictures I take, unless they are useful to illustrate something.
Mixing C++ with AMD64 (x86_64) assembly
Lately, Iāve been dabbling into some ācloser to the metalā kind of programming.
On most compilers (Visual Studioās one for instance) it used to be rather easy to mix assembly code and C++ code using a feature called inline assembly where the ASM code will be put in a block (decorated with a special macro/symbol like _asm for instance), and when the compiler sees that, it will put the content of this āas isā inside of the compiled code.
SDL: not (just) a 2D graphics library
My first real introduction with programming was with the C programming language, on a French website that was, at the time, known by the āLe Site Du ZĆ©roā (think āThe newbieās websiteā).
At this time, I was in middle school, and I was pretty bored by it. Itās around that time that I started to have really access to the internet at home, and started spending a lot of time on it.
Ogre_glTF: A glTF loader plugin for Ogre 2.x
If thereās one open source library that I really like and think has a great level of usefulness for both myself, and a whole community, itās Ogre.
Before going on the story of why I felt loading glTF files into ogre was a necessary thing to do, and why I decided to actually write a loader myself, I need to tell you a bit about Ogre:
Good old Ogre3D
I prefer to write it āOgreā, but really, itās name is OGRE. This is an acronym that stands for āObject-oriented Graphical Rendering Engineā.
No nonsense networking for C++ : Introducing kissnet, a K.I.S.S. socket library!
Sometimes I wonder why some things are inside the C and C++ standard libraries, and some arenāt.
As far as I can be bothered to read the actual āstandardsā document (that are mostly written in legalize, not in understandable English for you and me), these languages are defined against an āabstract machineā, and the actual real-world implementation of them, on computers that actually exists, should follow the behavior described for that thing, modulo some implementations details.
Why glTF 2.0 is awesome!
Thereās one single thing that I find truly frustrating when dealing with multiple 3D-related software : making them exchange 3D assets.
You donāt have much warranty that what has been put out of one software will look the same into something else (e.g. a Game Engine. You may work with meters, and find out that Unreal works in centimeters. They could use different conversations for texturing, material definitions may just ānot workāā¦)
Install and run SteamVR on ArchLinux (for using an HTC-Vive) and do OpenGL/OpenVR developement
So, I recently had the chance to try out an HTC-Vive on a Linux machine. Naturally, I installed Arch on it š
The installation is pretty straight forward, but there are some little catches if you want to do OpenGL development on Linux With OpenVR (OpenVR is the API you use to talk to the SteamVR runtime.)
SteamVR has a Linux beta since February 2017. They also announced that the SteamVR runtime itself is implemented with Vulkan only.
āScenario Testingā a game engine by misusing an unit test framework.
I donāt post regularly on this blog, but I really should post more⦠^^ā
If you have ever read me here before, you probably know that one of my pet project is a game engine called Annwvyn.
Where did I get from
Annwvyn was just āa few classes to act as glue code around a few free software libraryā. I really thought that in 2 months I had some piece of software worthy of bearing the name game engine. Obviously, I was just a foolish little nerd playing around with an Oculus DK1 in his room, but still, I did actually manage to have something render in real time on the rift with some physics and sound inside! That was cool!
Shoehorning anything (with `operator<<()`) into `qDebug()` the quick and dirty templated way
So, the other day I was working on some Ogre + Qt5 code.
I havenāt really worked with Qt that much since Qt4 was the hot new thing, so I was a bit rusty, but I definitively like the new things Iāve seen in version 5. But Iām not here to discuss Qt 5 today. ^^
Thereās a few weird things Qt does that I canāt really warp my head around. One is the incompatibility between QString and std::string (Thereās probably a nasty problem called āunicodeā behind this), but one other one is that QDebug is not an std::ostream derived object.
Getting the name of an audio device from itās GUID : Using the Oculus Rift selected audio device with OpenAL
So, while working on my game engine, I was curious about looking at the technical requirement for submitting an application to the Oculus Store.
One of the things required is that you need to target the audio output (and input) devices selected by the user in the Oculus app
[
][2]
So, how does the Oculus SDK tells you what is the selected device?
The locomotion problem in Virtual Reality
(Seriously, I hesitated some time between this version and the original, but thatās not the point of this article, and I kinda like the 80ās vibe anywayā¦)
I think we can all agree here, Virtual Reality (VR) is now, and not science-fiction anymore. āAccessibleā (not cheap by any stretch of the imagination) hardware is available for costumers to buy and enjoy. Now you can experience being immersed in virtual worlds generated in real time by a gaming computer and feel presence in it.
The subject that Iām about to address doesnāt really apply to mobile (smartphone powered) VR since theses experiences tend to be static ones. Mobile VR will need to have reliable positional tracking of the userās head before hitting this issue⦠We will limit the discussion on actual computer-based VR
The Annwvyn Game Engine, and how I started doing VR
If you know me, you also probably know that Iām developing a small C++ game engine, aimed at simplifying the creation of VR games and experiences for āconsumer gradeā VR systems (mainly the Oculus Rift, more recently the Vive too), called Annwvyn.
The funny question is : With the existence of tools like Unreal Engine 4 or Unity 5, that are free (or almost free) to use, why bother?
There are multiple reasons, but to understand why, I should add some context. This story started in 2013, at a time where you had to actually pay to use Unity with the first Oculus Rift Development Kit (aka DK1), and where UDK (the version of the Unreal Engine 3 you were able to use) was such a mess I wouldnāt want to touch itā¦
Using Ogre3Dās OpenGL renderer with the Oculus Rift SDK
Hello there!
The process of getting a scene rendered by Ogre to the Oculus Rift is a bit envolved process. With a basic conaissance of Ogre, and trials and error while browsing the Ogre wiki, Documentation and source code itself I got the thing runing each time Oculus changed the way it worked.
Since we are in the version 0.8 of the SDK, and that 1.0 will come with probably not much change in this front, I think I can write some sort of guide, while browing my Ogre powered VR game engine, and tell you the story of how it works, step by step.
Iāll paste here some code with explaination. Itās not structured into classes because I donāt know how you want to do. I donāt use the Ogre Application framework because I want to choose myself the order where things happen