#i had a (very. VERY.) rough draft for the map itself that i lost when i restarted/cleaned up my computer last year
Explore tagged Tumblr posts
Text
i just realized y'all don't know me well enough to know my habit of taking extensive notes for anything i read/watch and making custom excel spreadsheets for funsies
#if i was 12 id be filling up journals but im an adult so now i have...i have so many Documents...Help...#as an example: before TCF had an Official Map. i reread the whole thing in order to take EXTENSIVE notes on geography#(both large scale and local)#and was going to make a map myself#i had a (very. VERY.) rough draft for the map itself that i lost when i restarted/cleaned up my computer last year#but i remember the official map came out before i could complete mine and i was RIGHT ABOUT LIKE. LITERALLY ALL OF IT#(and also spotted a typo or mistranslation because of it im pretty sure. they put southwest when they meant southeast for something)#another example is the 400 page joongdok google doc#also my custom auto calculating ttrpg character sheets#my extensive minecraft storage system spreadsheets#i have docs that are jsut stream of consciousness that i word vomit into as i read then go back and organize afterwards#etc#i also keep docs for loved ones and what they like/dont like/etc#(ive mentioned before but i have very bad memory so keeping records is how i show i care about someone/thing)#anyways me [handshake] kdj: filling up pages upon pages analyzing and speculating on our favorite things#beso babbles
16 notes
·
View notes
Text
Witch Machines part 3
Part 3 is a lore dump, and this is where it appears in the original draft, but I might move it. There's a bigger lore hole that I wrote later but it's more encyclopedic and doesn't really fit in anywhere so I dunno when it'll get posted. Anyway. What the fuck is up with Sign?
The village of Sign was said to be incredibly old. Everyone was taught that it had been founded deep in the woods at least one thousand years ago and had been home to a thriving community ever since. Very little of the land was cleared, just enough to build modest houses raised on stilts. The rest of the village was dominated by trees, tall and old, which had been decorated with platforms and treehouses, extending the village to three dimensions. As the land did not lend itself to agriculture, the people of Sign instead made their living hunting and gathering in the forest from carefully tended plants. This gave the villages a lush, welcoming appearance.
Apart from trees, history was extremely important in Sign. The archives contained records stretching back through the entire lifetime of the village and were meticulously kept by a group of archivists. Every child learned an exhaustive history of Sign in preparation for the possibility of one day being responsible for the archives.
Due to its location, Sign very rarely had any visitors. At the same time, no one ever left. The village was a tiny island in a sea of trees and everyone agreed it was for the best. The woods provided everything they needed and someone had to keep the archives, so there was never any reason good enough to leave. The visitors who managed to find Sign were usually lost travellers telling frightening stories of rough seas, hunger, and icy storms. Much better to stay amongst the trees.
The most recent visitor—an esfa, like everyone else in Sign—had arrived in the early morning just over a year ago. They were cautiously welcomed and offered hospitality in Neela’s house. They were surprised to have come across Sign, but most visitors were. It was probably not on any maps except the ones made in Sign itself. Once the visitor left, after resting for a day and a night, the village elders breathed a sigh of relief and disappeared into the archives, which had remained locked for the duration of the visitor’s stay.
The last recorded visitor who was not an esfa was a porry who had stumbled upon the village nineteen years previously. The people of Sign had been fascinated by the bird-like person, in their own timid way, but they did not seem taken aback by the smooth tawny skin and pointed ears of the esfas. They had been particularly fond of the children of the village and showed them some of the trinkets they wore attached to their voluminous clothing. Deryn was among them but was too young to remember them for long. However, this mutual adoration came to an abrupt end when the porry showed the children magic. It was just a small enchantment, whistle that played by itself, but this was enough for the elders to ask them to leave immediately. Strangers were already suspect and a magical stranger was simply too much. The porry’s visit was recorded in great detail and the children were warned to stay away from strangers after that. Of course, being too young to remember, Deryn did not follow this rule.
Whenever Deryn heard of a visitor in the village, he would always introduce himself. This distinguished him from the other villagers, who were usually too shy or suspicious to make conversation. His cheerful demeanour put visitors at ease, although he mainly wanted to chat for his own amusement rather than out of concern or kindness. This meant that he learned a lot more about the world outside Sign than the rest of the community and developed rudimentary knowledge of the geography of the southwest of Raiperra, which the travellers passed through to reach Sign. He also became familiar with some of the many peoples of the island, some of whom were mentioned in the archives, but some he had only heard of from a single visitor, like the ixes, secretive rats living in elaborate burrows in the dry southeast.
-----
As well as outsiders, the people of Sign were taught to be suspicious of magic. The reasons were made clear: magic was something other people did, people outside of Sign. People in Sign had no use for it, it would simply make them like everyone else. What this meant ranged from malicious to lazy and dull. However, exact opinions on magic varied throughout the village. When Deryn started to play with magic as a child, his parents were blandly supportive but made sure not to talk about it with anyone else. They gently directed him to more subtle, harmless expressions of magic when he discovered he could make fire but this just made him practise in private. Over the years, he became more confident in his abilities and learned who could and could not be trusted with knowledge of what he was up to.
Deryn knew he was not the only person in Sign who did magic. Most notably, Arianan’s older sister had learned how to use magic for medicinal purposes. This was an open secret, with many people going to her for various ailments. Deryn had been treated by her himself, after a few increasingly uncomfortable years, in order to flatten his chest.
There had also been hints that some of his other neighbours knew more about magic than they let on. A bowl he accidentally knocked off Adair’s table and broke was seen again, apparently unharmed, on a later visit. On more than one occasion, Deryn had seen specks of light drifting through the trees that were not any insect he had ever heard of. Another time, he had passed a tree that he was sure had not been there the day before. Upon closer inspection, the tree did not appear to be solid, instead a pillar of colours shifting slightly in the breeze. He never found out who made it and did not try to find them, hoping that they would do the same for him.
Life in Sign had been strict in other ways but as a child the village elders often reminded Deryn that they were very lucky to live in such a peaceful, secluded place. The rest of the people of Raiperra had to contend with evildoers and their magic every day. At the time, this seemed like a reasonable trade-off, but now he was going out into the world, just a little, to see for himself.
3 notes
·
View notes
Text
This part of the story is not very heavy in the revenge in itself. When I read reading through some of my old sections, I realized I hadn't actually fleshed out the characters except for a few key points. Oh, I also finally named the city they are in and have an extremely rough draft of the map. Anyway, enough of my ramblings. Please feel free to let me know what you think, points that be made clearer, or anything like that. As always, thank you for reading :)
Ps. The next section will show some of the breakdowns for this world's magic system
---------------------------------------------------
Damien and Wryn stood on the wall overlooking a wide grassy plain. The rain had stopped by the time they had arrived at the stairs leading up to the wall and the sunlight made it through the clouds. This caused there to be small patches of the grass to be illuminated, while most were covered in darkness. A strong breeze blew, creating waves in the emerald sea. The pair sat in silence for a while. Wryn's hood was getting caught in the breeze and for a second Damien thought it was going to blow off, finally revealing the stranger's face. It always threatened to, but it never did fall off.
“Why do you hide your face so much?” Damien asked as he watched the emerald waves crash into part of the wall.
“Why do you choose to live here? There is a vast world out there. Countless sights waiting to be seen, bars to drink at, and pretty women for you to try and swoon. Yet, you've chosen this place. Why?” Wryn asked.
Neither of them broke their gaze, watching the grass sway in the breeze. The wind was shifting the clouds, giving bright radiant light in some areas only to be snuffed out a second later. Both of them refused to look to their right. That's where the gallows sat. Where they had watched the lives of an innocent, a scoundrel, and a rebel die. Damien let out a long sigh. He turned around looking back to the town inside the walls. The town that was built halfway into and around the base of a sheer rock wall. The similarities between out there and in here were both almost non-existent and completely similar at the same time.
“I hav- had a wife, once. Rhea,” Damien turned around and found the treeline far off into the distance to the east. “There's a little village, if you can even call it that, way past that treeline. I grew up past it. On a farm. Just me, my father, and mother. I'd play in the forest over there. That's where we met. Just two dumb kids, playing in the forest.”
A tear ran down his cheek, as he continued.
“Rhea had always talked about Evansguard as this big city. She’d always ask ‘Who wouldn't want to live in a city built into a mountain?’ and I'd always just shake my head. After my mom was killed by those fucks, I ran through the forest and found her in the same place as me. Those assholes took her family and did the same thing to them. We were just teenagers and now we were on our own. We loved each other, but it isn't the same as what we lost,” Damien said, silent tears fell.
Clouds swirled in the sky as the sunlight patches began being blocked out, one by one.
“Thankfully there was an inn in that tiny village. The village is called Wandering. We stayed there and thankfully the owner let us work instead of paying for us to stay. The Wandering Inn was our first home. We stayed there for a while, but eventually we had earned enough. She had never once forgotten her dream to live here. I think this place became a haven for her, or her idea of it did anyway. We bought that land the house is on, you know. It was supposed to be our first real home.” The tears had stopped and was slowly replaced with rage. Out in the distance, only a few sunspots remained, leaving inky darkness covering the ground.
Through all of this, Wryn never took her eyes off the horizon. She took in each word, each syllable, each meaning in complete silence.
“They give out rewards. If you're willing to be a backstabbing prick to everyone you know, it's apparently a very lucrative business…” Damien's voice trailed off.
“None of that answers why you've stayed here. Why are any of you staying here? It's a vipers den, each snake willing to eat its own young, its own tail to satiate its hunger. Burn out this viper den. Between the loss of her or part of your sight, you know the venom their fangs bare,” Wryn asked. She had no inflection in her words. They were stiff and mechanical.
Damien just ignored her question, continuing to stare out into the dark sea of grass. A single drop of sunlight was all that poked through the heavens. Clouds swirled and moved but that stream of light refused to be swallowed up.
“She ran a little seamstress shop in town. She was good. Really good, actually. She had been right. This was a place that we could make a home. A place for us to thrive, despite everything that we had endured. In my lowest points she was my harbor in the storm. I tried to be her lighthouse, to guide her safely home. Do you know what lights can also do? They can bring in the vermin who deserve nothing but pain,” he spat the last words out.
All that remained in that emerald sea in front of them was a tiny pinprick of light.
“I did something I regret every day. I had gotten drunk and I let something stupid slip out. It was one fucking sentence. ONE. SENTENCE. WRYN. ‘I've got my eye on all that gold that they're collecting’. It was a drunken boast and it ruined everything.” Damien's words echoed as he screamed it into the plain in front of them as the last little bit of light was snuffed out. The clouds darkened, the breeze changed directions swirling and whipping violently around them.
Wryn stared out towards the horizon, her cloak and hood billowed in the gusts of wind and her long white hair flew in all directions. Quietly, in a voice void of any emotion she simply said, “Finish it, Damien.”
After a long moment, he took a deep, shuddering breath. “It was one of the guys at the bar. Thorn. Regs Thorn. He was the one feeding drink after drink until I was drunk enough to forget myself. Forgot where I was, and that little rat-faced prick heard that magical sentence. He walked me home and said he didn't want me drowning in a gutter. After he dropped me off, the fuck walked to a guard outpost and told them exactly what I'd said. That's why they cut my eye out. Their captain just laughed, thinking he was the funniest fucking man in existence. They took her Wryn. She swung from the same gallows. But they left me here, alone. A punishment I wouldn't wish on anyone.”
You won't leave her, will you?” Wryn asked.
“No Wryn. I won't leave her dream.”
In the distance, lightning danced from cloud to cloud, and thunder boomed, as if in agreement from the heavens itself.
3 notes
·
View notes
Text
“Along For The Ride”, a reasonably complex demo
It's been a while since I've been anticipating people finally seeing one of my demos like I was anticipating people to see "Along For The Ride", not only because it ended up being a very personal project in terms of feel, but also because it was one of those situations where to me it felt like I was genuinely throwing it all the complexity I've ever did in a demo, and somehow keeping the whole thing from falling apart gloriously.
youtube
The final demo.
I'm quite happy with the end result, and I figured it'd be interesting to go through all the technology I threw at it to make it happen in a fairly in-depth manner, so here it goes.
(Note that I don't wanna go too much into the "artistic" side of things; I'd prefer if the demo would speak for itself on that front.)
The starting point
I've started work on what I currently consider my main workhorse for demomaking back in 2012, and have been doing incremental updates on it since. By design the system itself is relatively dumb and feature-bare: its main trick is the ability to load effects, evaluate animation splines, and then render everything - for a while this was more than enough.
Around the summer of 2014, Nagz, IR and myself started working on a demo that eventually became "Háromnegyed Tíz", by our newly formed moniker, "The Adjective". It was for this demo I started experimenting with something that I felt was necessary to be able to follow IR's very post-production heavy artstyle: I began looking into creating a node-based compositing system.
I was heavily influenced by the likes of Blackmagic Fusion: the workflow of being able to visually see where image data is coming and going felt very appealing to me, and since it was just graphs, it didn't feel very complicated to implement either. I had a basic system up and running in a week or two, and the ability to just quickly throw in effects when an idea came around eventually paid off tenfold when it came to the final stage of putting the demo together.
The initial node graph system for Háromnegyed Tíz.
The remainder of the toolset remained relatively consistent over the years: ASSIMP is still the core model loader of the engine, but I've tweaked a few things over time so that every incoming model that arrives gets automatically converted to its own ".assbin" (a name that never stops being funny) format, something that's usually considerably more compact and faster to load than formats like COLLADA or FBX. Features like skinned animation were supported starting with "Signal Lost", but were never spectacularly used - still, it was a good feeling to be able to work with an engine that had it in case we needed it.
Deferred rendering
During the making of "Sosincs Vége" in 2016, IR came up with a bunch of scenes that felt like they needed to have an arbitrary number of lightsources to be effecive; to this end I looked into whether I was able to add deferred rendering to the toolset. This turned out to be a bit fiddly (still is) but ultimately I was able to create a node type called the "G-buffer", which was really just a chunk of textures together, and use that as the basis for two separate nodes: one that renders the scenegraph into the buffer, and another that uses the buffer contents to light the final image.
The contents of a G-buffer; there's also additional information in the alpha channels.
Normally, most deferred renderers go with the tile-based approach, where they divide the screen into 16x16 or 32x32 tiles and run the lights only on the tiles they need to run them on. I decided to go with a different approach, inspired by the spotlight rendering in Grand Theft Auto V: Because I was mostly using point- and spot-lights, I was able to control the "extent" of the lights and had a pretty good idea whether each pixel was lit or not based on its position relative to the light source. By this logic, e.g. for pointlights if I rendered a sphere into the light position, with the radius of what I considered to be the farthest extent of the light, the rendered sphere would cover all the pixels on screen covered by that light. This means if I ran a shader on each of those pixels, and used the contents of the G-buffer as input, I would be able to calculate independent lighting on each pixel for each light, since lights are additive anyway. The method needed some trickery (near plane clipping, sphere mesh resolution, camera being near the sphere edge or inside the sphere), but with some magic numbers and some careful technical artistry, none of this was a problem.
The downside of this method was that the 8-bit channel resolution of a normal render target was no longer enough, but this turned out to be a good thing: By using floating point render targets, I was able to adapt to a high-dynamic range, linear-space workflow that ultimately made the lighting much easier to control, with no noticable loss in speed. Notably, however, I skipped a few demos until I was able to add the shadow routines I had to the deferred pipeline - this was mostly just a question of data management inside the graph, and the current solution is still something I'm not very happy with, but for the time being I think it worked nicely; starting with "Elégtelen" I began using variance shadowmaps to get an extra softness to shadows when I need it, and I was able to repurpose that in the deferred renderer as well.
The art pipeline
After doing "The Void Stared Into Me Waiting To Be Paid Its Dues" I've began to re-examine my technical artist approach; it was pretty clear that while I knew how the theoreticals of a specular/glossiness-based rendering engine worked, I wasn't necessarily ready to be able to utilize the technology as an artist. Fortunately for me, times changed and I started working at a more advanced games studio where I was able to quietly pay closer attention to what the tenured, veteran artists were doing for work, what tools they use, how they approach things, and this introduced me to Substance Painter.
I've met Sebastien Deguy, the CEO of Allegorithmic, the company who make Painter, way back both at the FMX film festival and then in 2008 at NVScene, where we talked a bit about procedural textures, since they were working on a similar toolset at the time; at the time I obviously wasn't competent enough to deal with these kind of tools, but when earlier this year I watched a fairly thorough tutorial / walkthrough about Painter, I realized maybe my approach of trying to hand-paint textures was outdated: textures only ever fit correctly to a scene if you can make sure you can hide things like your UV seams, or your UV scaling fits the model - things that don't become apparent until you've saved the texture and it's on the mesh.
Painter, with its non-linear approach, goes ahead of all that and lets you texture meshes procedurally in triplanar space - that way, if you unwrapped your UVs correctly, your textures never really stretch or look off, especially because you can edit them in the tool already. Another upside is that you can tailor Painter to your own workflow - I was fairly quickly able to set up a preset to my engine that was able to produce diffuse, specular, normal and emissive maps with a click of a button (sometimes with AO baked in, if I wanted it!), and even though Painter uses an image-based lighting approach and doesn't allow you to adjust the material settings per-textureset (or I haven't yet found it where), the image in Painter was usually a fairly close representation to what I saw in-engine. Suddenly, texturing became fun again.
An early draft of the bus stop scene in Substance Painter.
Depth of field
DOF is one of those effects that is nowadays incredibly prevalent in modern rendering, and yet it's also something that's massively overused, simply because people who use it use it because it "looks cool" and not because they saw it in action or because they want to communicate something with it. Still, for a demo this style, I figured I should revamp my original approach.
The original DOF I wrote for Signal Lost worked decently well for most cases, but continued to produce artifacts in the near field; inspired by both the aforementioned GTAV writeup as well as Metal Gear Solid V, I decided to rewrite my DOF ground up, and split the rendering between the near and far planes of DOF; blur the far field with a smart mask that keeps the details behind the focal plane, blur the near plane "as is", and then simply alphablend both layers on top of the original image. This gave me a flexible enough effect that it even coaxed me to do a much-dreaded focal plane shift in the headphones scene, simply because it looked so nice I couldn't resist.
The near- and far-fields of the depth of field effect.
Screen-space reflections
Over the summer we did a fairly haphazard Adjective demo again called "Volna", and when IR delivered the visuals for it, it was very heavy on raytraced reflections he pulled out of (I think) 3ds max. Naturally, I had to put an axe to it very quickly, but I also started thinking if we can approximate "scene-wide" reflections in a fairly easy manner. BoyC discovered screen-space reflections a few years ago as a fairly cheap way to prettify scenes, and I figured with the engine being deferred (i.e. all data being at hand), it shouldn't be hard to add - and it wasn't, although for Volna, I considerably misconfigured the effect which resulted in massive framerate loss.
The idea behind SSR is that a lot of the time, reflections in demos or video games are reflecting something that's already on screen and quite visible, so instead of the usual methods (like rendering twice for planar reflections or using a cubemap), we could just take the normal at every pixel, and raymarch our way to the rendered image, and have a rough approximation as to what would reflect there.
The logic is, in essence to use the surface normal and camera position to calculate a reflection vector and then start a raymarch from that point and walk until you decide you've found something that may be reflecting on the object; this decision is mostly depth based, and can be often incorrect, but you can mitigate it by fading off the color depending on a number of factors like whether you are close to the edge of the image or whether the point is way too far from the reflecting surface. This is often still incorrect and glitchy, but since a lot of the time reflections are just "candy", a grainy enough normalmap will hide most of your mistakes quite well.
Screen-space reflections on and off - I opted for mostly just a subtle use, because I felt otherwise it would've been distracting.
One important thing that Smash pointed out to me while I was working on this and was having problems is that you should treat SSR not as a post-effect, but as lighting, and as such render it before the anti-aliasing pass; this will make sure that the reflections themselves get antialiased as well, and don't "pop off" the object.
Temporal antialiasing
Over the last 5 years I've been bearing the brunt of complaints that the aliasing in my demos is unbearable - I personally rarely ever minded the jaggy edges, since I got used to them, but I decided since it's a demo where every pixel counts, I'll look into solutions to mitigate this. In some previous work, I tried using FXAA, but it never quite gave me the results I wanted, so remembering a conversation I had with Abductee at one Revision, I decided to read up a bit on temporal antialiasing.
The most useful resource I found was Bart Wroński's post about their use of TAA/TSSAA (I'm still not sure what the difference is) in one of the Assassin's Creed games. At its most basic, the idea behind temporal antialiasing is that instead of scaling up your resolution to, say, twice or four times, you take those sub-pixels, and accumulate them over time: the way to do this would be shake the camera slightly each frame - not too much, less than a quarter-pixel is enough just to have the edges alias slightly differently each frame - and then average these frames together over time. This essentially gives you a supersampled image (since every frame is slightly different when it comes to the jagged edges) but with little to no rendering cost. I've opted to use 5 frames, with the jitter being in a quincunx pattern, with a random quarter-pixel shake added to each frame - this resulted in most edges being beautifully smoothed out, and I had to admit the reasonably little time investment was worth the hassle.
Anti-aliasing on and off.
The problem of course, is that this works fine for images that don't move all that much between frames (not a huge problem in our case since the demo was very stationary), but anything that moves significantly will leave a big motion trail behind it. The way to mitigate would be to do a reprojection and distort your sampling of the previous frame based on the motion vectors of the current one, but I had no capacity or need for this and decided to just not do it for now: the only scene that had any significant motion was the cat, and I simply turned off AA on that, although in hindsight I could've reverted back to FXAA in that particular scenario, I just simply forgot. [Update, January 2019: This has been bugging me so I fixed this in the latest version of the ZIP.]
There were a few other issues: for one, even motion vectors won't be able to notice e.g. an animated texture, and both the TV static and the rain outside the room were such cases. For the TV, the solution was simply to add an additional channel to the GBuffer which I decided to use as a "mask" where the TAA/TSSAA wouldn't be applied - this made the TV texture wiggle but since it was noisy anyway, it was impossible to notice. The rain was considerably harder to deal with and because of the prominent neon signs behind it, the wiggle was very noticable, so instead what I ended up doing is simply render the rain into a separate 2D matte texture but masked by the scene's depth buffer, do the temporal accumulation without it (i.e. have the antialiased scene without rain), and then composite the matte texture into the rendered image; this resulted in a slight aliasing around the edge of the windows, but since the rain was falling fast enough, again, it was easy to get away with it.
The node graph for hacking the rainfall to work with the AA code.
Transparency
Any render coder will tell you that transparency will continue to throw a wrench into any rendering pipeline, simply because it's something that has to respect depth for some things, but not for others, and the distinction where it should or shouldn't is completely arbitrary, especially when depth-effects like the above mentioned screen-space reflections or depth of field are involved.
I decided to, for the time being, sidestep the issue, and simply render the transparent objects as a last forward-rendering pass using a single light into a separate pass (like I did with the rain above) honoring the depth buffer, and then composite them into the frame. It wasn't a perfect solution, but most of the time transparent surfaces rarely pick up lighting anyway, so it worked for me.
Color-grading and image mastering
I was dreading this phase because this is where it started to cross over from programming to artistry; as a first step, I added a gamma ramp to the image to convert it from linear to sRGB. Over the years I've been experimenting with a lot of tonemap filters, but in this particular case a simple 2.2 ramp got me the result that felt had the most material to work with going into color grading.
I've been watching Zoom work with Conspiracy intros for a good 15 years now, and it wasn't really until I had to build the VR version of "Offscreen Colonies" when I realized what he really does to get his richer colors: most of his scenes are simply grayscale with a bit of lighting, and he blends a linear gradient over them to manually add colour to certain parts of the image. Out of curiousity I tried this method (partly out of desperation, I admit), and suddenly most of my scenes began coming vibrantly to life. Moving this method from a bitmap editor to in-engine was trivial and luckily enough my old friend Blackpawn has a collection of well known Photoshop/Krita/etc. blend mode algorithms that I was able to lift.
Once the image was coloured, I stayed in the bitmap editor and applied some basic colour curve / level adjustment to bring out some colours that I felt got lost when using the gradient; I then applied the same filters on a laid out RGB cube, and loaded that cube back into the engine as a colour look-up table for a final colour grade.
Color grading.
Optimizations
There were two points in the process where I started to notice problems with performance: After the first few scenes added, the demo ran relatively fine in 720p, but began to dramatically lose speed if I switched to 1080p. A quick look with GPU-Z and the tool's internal render target manager showed that the hefty use of GPU memory for render targets quickly exhausted 3GB of VRAM. I wasn't surprised by this: my initial design for render target management for the node graph was always meant to be temporary, as I was using the nodes as "value types" and allocating a target for each. To mitigate this I spent an afternoon designing what I could best describe as a dependency graph, to make sure that render targets that are not needed for a particular render are reused as the render goes on - this got my render target use down to about 6-7 targets in total for about a hundred nodes.
The final node graph for the demo: 355 nodes.
Later, as I was adding more scenes (and as such, more nodes), I realized the more nodes I kept adding, the more sluggish the demo (and the tool) got, regardless of performance - clearly, I had a CPU bottleneck somewhere. As it turned out after a bit of profiling, I added some code to save on CPU traversal time a few demos ago, but after a certain size this code itself became a problem, so I had to re-think a bit, and I ended up simply going for the "dirty node" technique where nodes that explicitly want to do something mark their succeeding nodes to render, and thus entire branches of nodes never get evaluated when they don't need to. This got me back up to the coveted 60 frames per second again.
A final optimization I genuinely wanted to do is crunch the demo down to what I felt to be a decent size, around 60-ish megabytes: The competition limit was raised to 128MB, but I felt my demo wasn't really worth that much size, and I felt I had a chance of going down to 60 without losing much of the quality - this was mostly achieved by just converting most diffuse/specular (and even some normal) textures down to fairly high quality JPG, which was still mostly smaller than PNG; aside from a few converter setting mishaps and a few cases where the conversion revealed some ugly artifacts, I was fairly happy with the final look, and I was under the 60MB limit I wanted to be.
Music
While this post mostly deals with graphics, I'd be remiss to ignore the audio which I also spent a considerable time on: because of the sparse nature of the track, I didn't need to put a lot of effort in to engineering the track, but I also needed to make sure the notes sounded natural enough - I myself don't actually play keyboards and my MIDI keyboard (a Commodore MK-10) is not pressure sensitive, so a lot of the phrases were recorded in parts, and I manually went through each note to humanize the velocities to how I played them. I didn't process the piano much; I lowered the highs a bit, and because the free instrument I was using, Spitfire Audio's Soft Piano, didn't have a lot of release, I also added a considerable amount of reverb to make it blend more into the background.
For ambient sounds, I used both Native Instruments' Absynth, as well as Sound Guru's Mangle, the latter of which I used to essentially take a chunk out of a piano note and just add infinite sustain to it. For the background rain sound, I recorded some sounds myself over the summer (usually at 2AM) using a Tascam DR-40 handheld recorder; on one occasion I stood under the plastic awning in front of our front door to record a more percussive sound of the rain knocking on something, which I then lowpass filtered to make it sound like it's rain on a window - this eventually became the background sound for the mid-section.
I've done almost no mixing and mastering on the song; aside from shaping the piano and synth tones a bit to make them sound the way I wanted, the raw sparse timbres to me felt very pleasing and I didn't feel the sounds were fighting each other in space, so I've done very little EQing; as for mastering, I've used a single, very conservatively configured instance of BuzMaxi just to catch and soft-limit any of the peaks coming from the piano dynamics and to raise the track volume to where all sounds were clearly audible.
The final arrangement of the music in Reaper.
Minor tricks
Most of the demo was done fairly easily within the constraints of the engine, but there were a few fun things that I decided to hack around manually, mostly for effect.
The headlights in the opening scene are tiny 2D quads that I copied out of a photo and animated to give some motion to the scene.
The clouds in the final scene use a normal map and a hand-painted gradient; the whole scene interpolates between two lighting conditions, and two different color grading chains.
The rain layer - obviously - is just a multilayered 2D effect using a texture I created from a particle field in Fusion.
Stuff that didn't make it or went wrong
I've had a few things I had in mind and ended up having to bin along the way:
I still want to have a version of the temporal AA that properly deghosts animated objects; the robot vacuum cleaner moved slow enough to get away with it, but still.
The cat is obviously not furry; I have already rigged and animated the model by the time I realized that some fur cards would've helped greatly with the aliasing of the model, but by that time I didn't feel like redoing the whole thing all over again, and I was running out of time.
There's considerable amount of detail in the room scene that's not shown because of the lighting - I set the room up first, and then opted for a more dramatic lighting that ultimately hid a lot of the detail that I never bothered to arrange to more visible places.
In the first shot of the room scene, the back wall of the TV has a massive black spot on it that I have no idea where it's coming from, but I got away with it.
I spent an evening debugging why the demo was crashing on NVIDIA when I realized I was running out of the 2GB memory space; toggling the Large Address Aware flag always felt a bit like defeat, but it was easier than compiling a 64-bit version.
A really stupid problem materialized after the party, where both CPDT and Zoom reported that the demo didn't work on their ultrawide (21:9) monitors: this was simply due to the lack of pillarbox support because I genuinely didn't think that would ever be needed (at the time I started the engine I don't think I even had a 1080p monitor) - this was a quick fix and the currently distributed ZIP now features that fix.
Acknowledgements
While I've did the demo entirely myself, I've received some help from other places: The music was heavily inspired by the work of Exist Strategy, while the visuals were inspired by the work of Yaspes, IvoryBoy and the Europolis scenes in Dreamfall Chapters. While I did most of all graphics myself, one of the few things I got from online was a "lens dirt pack" from inScape Digital, and I think the dirt texture in the flowerpot I ended up just googling, because it was late and I didn't feel like going out for more photos. I'd also need to give credit to my audio director at work, Prof. Stephen Baysted, who pointed me at the piano plugin I ended up using for the music, and to Reid who provided me with ample amounts of cat-looking-out-of-window videos for animation reference.
Epilogue
Overall I'm quite happy with how everything worked out (final results and reaction notwithstanding), and I'm also quite happy that I managed to produce myself a toolset that "just works". (For the most part.)
One of the things that I've been talking to people about it is postmortem is how people were not expecting the mix of this particular style, which is generally represented in demos with 2D drawings or still images or photos slowly crossfading, instead using elaborate 3D and rendering. To me, it just felt like one of those interesting juxtapositions where the technology behind a demo can be super complex, but at the same time the demo isn't particularly showy or flashy; where the technology behind the demo does a ton of work but forcefully stays in the background to allow you to immerse in the demo itself. To me that felt very satisfactory both as someone trying to make a work of art that has something to say, but also as an engineer who tries to learn and do interesting things with all the technology around us.
What's next, I'm not sure yet.
3 notes
·
View notes
Photo
*deep breath*
okay. I have some feelings about this, and this is probably going in the drafts to stay, so if you’re reading this then I was probably feeling confident enough in my answer to post.
So, back in season 3, I shipped staticquake. Not a ton, not like.....all in, but I thought they were cute. If it had been endgame, I wouldn’t have been mad. Chloe and Luke have great chemistry, and the whole meeting in afterlife thing was adorable, with him helping her with her powers, and then in season 3 where they learn to trust each other again. I thought it was great, I was on board. I was absolutely heartbroken when he died, and wow I felt for Daisy. That year season 3 came out was particularly rough for me, personally, so I was just... distraught. I lost someone too, so to see Daisy struggle with all the feelings I had around the same time was definitely not fun. But I related to her. And I enjoyed Lincoln as a character-- I still think he’s one of the most realistic characters they��ve created: he’s flawed, angry, distrustful, etc. But he also had so many good redeeming qualities, and I just really liked him.
All that to say, I’m not upset that they never mentioned him in season 7.
Backup a bit. I need to amend that. Not only did they not mention him in season 7, they didn’t mention a lot of things in season 7. Season 3 was a long time ago (2015, guys. That’s almost 6 years ago now). A lot happened since then, and the team has moved through a lot of new and different scenarios.
Daisy did talk about Lincoln in season 5, after Deke left lemons on her bed. She was feeling a lot of emotions through that arc. The details of season 5 are fuzzy for me now, but I do remember it was rough. She obviously noticed Deke’s not-so-subtle flirting attempts, and so she pushed him away (whether consciously or not) by talking through that old, bottled-up pain that she still feels even what, 2 or 3 years after Lincoln’s death.
That type of pain never goes away. Losing someone so suddenly and so unexpectedly..... it hurts. A lot. It might become dull and you might not think about it every day anymore, but it’s always there, and when you’re reminded of it.... Yeah. It hurts.
But that doesn’t necessarily mean she’s still in love with him, like you said. I think she still loves him, and that’s completely understandable. I think she misses him, and still gets that aching in her chest when she thinks about him. But he’s gone, and she knows that, and she’s able to move on. Especially in season 7. She’s grown so much, and dealt with other deaths and losses, and she knows heartbreak. She’s learned to deal with that.
When she meets Sousa, I don’t think he reminds her of Lincoln at all. Yes, he’s there to help her and is just as caring as Lincoln was, but it’s a completely different situation. They’re completely different people, with different outlooks on life and different personalities, and that’s exactly why Sousa is so perfect for her. Everything she thought she knew about herself and the type of guy she liked was upended when she met him. I don’t think she had the time or the mental energy to step back and find all the parallels that OP mapped out up there. And if she did, she wouldn’t say anything right away.
I mean, imagine meeting someone and having meaningful conversation about a very, very touchy subject (her mother), and suddenly mentioning an old boyfriend. That would be weird, narratively. She did it with Deke to ward him off, because she wasn’t interested in his advances. But she is interested in Sousa, so why would she bring up that old pain needlessly?
And on this same track, let’s just think about the show itself and us, as the audience. There were only thirteen episodes, with forty minutes each. There’s limited time, and the plot was very much focused on everything except what happened in season 3. If someone had brought up Hive, maybe Lincoln’s name would have been dropped, but narratively it wouldn’t make sense for such an old wound to be opened again. I think the showrunners did pay homage to him (purposefully or not), with all the parallels. But inside the show, the characters didn’t need to talk about him to move the plot along. We know that Lincoln is dead, just like we know Ward is dead, and Andrew, and Radcliffe, and all of those characters had ties to the team, but they never get mentioned. And that’s okay. They had their moment, and Daisy grew and matured and isn’t wrapped up in comparing Sousa to Lincoln.
That said, I’m confident when I say that I’m sure Daisy did eventually tell Sousa about Lincoln. I’m sure they had long, deep discussions about past relationships, where he told her all about Peggy and Violet, and where she told him about Ward and Lincoln. And maybe even Miles. But remember, by the time Daisy dies at the end of season 7, she and Sousa have known each other for like a week. They’re interested in each other, and they already have a really good relationship as fellow agents. (and the flirting game is strong lol) But why would she need to tell him about Lincoln? She moved on, and like I said before: she still loves him, in a way, but she knows he’s gone and he can never come back. It would be just as strange as if Sousa started talking about Peggy and all the ways Daisy reminds him of her. (Because yeah, there are a ton of parallels between them.) It’s just not something people do when they first meet each other.
And one last thing. You said, “I challenge someone to convince me that Lincoln is NOT the love of Daisy’s life, seeing as the guy she ended up with is essentially Lincoln in EVERY SINGLE WAY except looks.”
Challenge accepted.
Daniel Sousa has similarities to Lincoln, but they are definitely not the same person. Lincoln may have been caring and empathetic, but he was brash and a little harsh at times. He was hotheaded and didn’t think things through before he jumped in. He wasn’t a team player, ever, and he had a strong tendency to run away from his problems. To me, that sounds a lot more like Daisy than Sousa....
On the other hand, Sousa is also caring and empathetic, but he’s soft spoken in general (except when he’s yelling in 7x05, I think it was, but those were extenuating circumstances), and he has a good filter. He’s a gentleman. He’s calculating and quick-thinking, and he does his darndest to see every scenario before making a decision. He’s a team player by nature, and he tries to stand up and face his problems (except when the problem is a crush, in which case he moves literally to the other side of the country. Don’t worry, Danny Boy-- we all have our flaws.)
To wrap it up:
I think Lincoln could have been the love of Daisy’s life. I think they worked well together, even if they had huge issues. But he is nothing like Sousa except surface-level mannerisms.
In conclusion, it wouldn’t have made any sense in the story of season 7 to mention Lincoln, no matter how many parallels there were between them. Also, Daisy knows he’s dead and is too smart to think that loving him and being in love with him after his death are the same thing. She’s ready to move on and pursue something with Sousa, and that’s okay.
Okay, guys, these are ALL the StaticQuake and Dousy parallels that I found. Daisy NEVER mentioned Lincoln to Sousa and I find that INCREDIBLY frustrating because there is NO WAY she was not thinking of him given EVERYTHING that she went through with both men that was BASICALLY THE SAME. I am asking everyone to try to convince me that she was not thinking of Lincoln when she first started liking Sousa. They went through SOOOOO many of the same things, from Hydra experimentation, to sitting at the bedside in recovery, to “You should talk to your mom”, to the last time Jiaying was in the Lighthouse, Daisy told Deke she was still in love with Lincoln, to Nathaniel Malick being Hive in the OG timeline, to dying in space. I challenge someone to convince me that Lincoln is NOT the love of Daisy’s life, seeing as the guy she ended up with is essentially Lincoln in EVERY SINGLE WAY except looks. ❤⚡🌼😍 Oh, and don’t get me started on the Daisy/Lincoln and Peggy/Cap parallels or the Daisy/Lincoln and Wanda/Vision ones.
#some things just hit me the wrong way#i'm probably not making any sense here#:/#oh well#I'm not anti staticquake#i did like them#don't worry#:)#aos#agents of shield#long rant#whoops#fandom discourse
58 notes
·
View notes
Text
This Year You Write Your Novel
Excerpt from This Year You Write Your Novel by Walter Mosley via Npr
Where to Begin
First words
Probably the highest hurdle for the novice novelist (and many seasoned veterans) is writing the first few words. That beginning is a very emotional moment for most of us.
There are all kinds of ways for people to cajole themselves into starting their book. Some get a special pen or a particular desk set at a window looking out on something beautiful. Others play a favorite piece of music, light a candle, burn incense, or set up some other ritual that makes them feel empowered and optimistic. If this is what you find you must do to write — well... okay. Rituals frighten me. I worry that if I need a special pen or desk or scent to start me out, what will happen when I lose that pen or I'm on vacation or a business trip and my window looks out on the city dump?
My only ritual for writing is that I do it every morning. I wake up and get to work. If I'm in a motel in Mobile — so be it. If I am up all night, and morning is two o'clock in the afternoon, well, that's okay too.
The only thing that matters is that you write, write, write. It doesn't have to be good writing. As a matter of fact, almost all first drafts are pretty bad. What matters is that you get down the words on the page or the screen — or into the tape recorder, if you work like that.
Your first sentence will start you out, but don't let it trip you up.
If you are the intuitive type, just sit down and start writing the novel:
Lamont had only enough cash to buy half a pint of whiskey at Bob's Liquor Emporium, but he knew it wouldn't be enough. Ragman was dead, and that was at least a quart's worth of mourning.
What does it mean? How should I know? Those were the first words that came out. I'm not going to worry about it; I'm just going to keep on writing until either something clicks or I lose momentum. If it doesn't seem to be working, I'll start with a new first sentence. I'll keep on like that until something strikes my fancy and I have enough of a handle on the story to continue.
The next morning I read what I wrote the day before, making only the most superficial changes, and then continue on my way. This is all you have to do. Sit down once a day to the novel and start working without internal criticism, without debilitating expectations, without the need to look at your words as if they were already printed and bound.
The beginning is only a draft. Drafts are imperfect by definition.
If you are the structured kind of writer, you might start by getting the outline of your novel down on paper. You know the story already, but now you have to get it down scene after scene, chapter after chapter.
Every day, you sit down, just like the intuitive writer, writing what it is you think your story is about. You discover new characters, add little thumbnail sketches of them; you make notes about the feeling you want to get here and there. You create the whole book out of bulleted phrases and sentences, paragraphs and maybe even flowcharts.
Finally the day will arrive when you come to the end of the outline. The story is set, at least theoretically, and now you must follow the road that the intuitive writer takes. You sit down with your outline somewhere in the room and start writing the prose. You begin with a sentence and keep on going. Maybe you will follow the plan assiduously; maybe you will be diverted onto another path that will lead you far from your original ideas.
Whatever the case, the work is the same. Some days will be rough, unbearable; some will be sublime. Pay no attention to these feelings. All you have to do is write your novel this year. Happy or sad, the story has to come out.
Stick to your schedule. Try to write a certain amount every day — let's say somewhere between 600 and 1,200 words. Do not labor over what's been written. Go over yesterday's work cursorily to reorient yourself, then move on. If you find at some point that you have lost the thread of your story, take a few days to reread all you have written, not with the intention of rewriting (though a little editing is unavoidable) but with the intention of refamiliarizing yourself with the entire work.
Using this method, you should have a first draft of the novel in about three months. It won't be publishable. It won't be pretty. It probably won't make logical sense. But none of that matters. What you will have in front of you is the heart of the book that you wish to write.
There is no greater moment in the true writer's life.
Your first draft is like a rich uncultivated field for the farmer: it is waiting for you to bring it into full bloom.
The midlands of the novel
The beginning of the novel is hard, but it's only a few sentences and you're off on your tale. The end is also difficult because it has to make sense out of all that's gone before. In the rewriting phase of your process, you may spend weeks worrying over a satisfying end point.
But despite all this, it is the middle of your novel, that great expanse of storytelling, that is the most difficult part. How, you ask yourself, do I keep the story going for all those hundreds of pages?
What you have to remember is that a novel is the one and the many. There is an overarching story, and then there are all the smaller narratives that come together to make up that larger tale.
So in the case of Bob, Ramona, and Lyle, we have many bases to cover before we can come to a satisfying conclusion. Ramona must come into sync (through conflict) with Bob and Lyle: the same is true for Lyle and his father. We also have the police, the criminals, the judicial system, and Bob's in-laws to understand. Each character and element involved in the circumstances of this tragedy must be plumbed for us to understand and feel the evolution of that character — especially Bob's.
Keeping these notions in mind, you will find that the novel in some important way writes itself. You know the characters; you know the circumstances — now you must make sure that the reader is aware of every factor that makes up the tale.
You will find yourself in the cell with more than one murderer. You will find yourself in Bob's and Lyle's memories of their lost family members. You will experience the police officer's exasperation with Bob's apparent cowardice. You will come to understand Bob's loveless life, and then you will see how, in a very different way, Ramona has always sought after love.
And with each one of these substories, more of the larger tale will be revealed. Is it a story of forgiveness or retribution, a slow death or a rebirth?
The midlands of your novel can be treacherous, but the map is in the beginning of your story, where the characters are introduced and the conflict occurs. How this conflict is resolved is the content of your tale. There are many strands that must come together into a whole cloth — this is your novel.
Research
There will be moments when you will want to dally over details. Do Georgia geese fly south in April or June? Is it physically possible for Bob Millar to hear the cult leader yelling from a mile away — even in a desert? Would the police arrest Trip if the women were allowed into the bar and were served by the owner?
All of these questions are valid. Before the book gets into print, you should have the answers. But many writers allow questions like these to help them procrastinate. They tell themselves that they can't go on until these questions are answered.
Nonsense. Put a red question mark next to the place where you have questions and get back to it later.
I almost always do the research for my books toward the end of the last draft. By that time I know the book is written and that my creative energies will not be sapped by needless fretting.
I have to admit that I'm not the best source when it comes to research. It's not one of my strong suits. I write books about places I've been and people I like to think I understand.
I've known writers who have spent years in libraries and foreign lands researching the topics of their novels. There's nothing I can say about that. If you need to go to South Africa for a month (or five years) to get the feeling for your book, then do it. When you come back and you're ready to write, my little how-to book will be waiting for you.
From the book This Year You Write Your Novel by Walter Mosley © 2007 (via NPR)
5 notes
·
View notes
Text
PROJECTION MAPPING
Brief: create a short animation, exploring the theme of autumn, that will be part of a live projection light show featured on Eastbourne town hall tower.
In collaboration with Eastbourne Borough Council and West End Studios, this project focuses on projection mapping, a technique unfamiliar to myself. Agreed by the client and Council the theme issued was “Eastbourne through the Seasons”, Spring, Summer and Winter elements were to be covered by W.E.S, leaving Autumn to be explored. The final outcome would be included in the Eastbourne christmas light show which will be projected onto the town hall tower, along with opportunities to work with W.E.S on a placement.
My initial research took me into investigating the basics of projection mapping, as a completely new visual technique to me, I wanted to understand and grasp the workings and effects that projection mapping offers. Also known as video mapping and augmented reality, this visual tool uses projected light to turn objects into a display surface for video projection. These objects range from buildings to theatrical stages, using software such as Ae and Autodesk Maya a 2D or 3D object is mapped on the virtual program which mimics the real environment it is to be projected on. Combined with audio input, projection mapping is used by creatives to describe a narrative explorations in image, type, colour, light and sound.
Continuing my research I visited Eastbourne and the town hall, where the final projections would be held. I gathered a series of drawings and photographs of the tower and building, helping myself grasp the scale and physicality of the building which in turn gave me a better understand of the practicality and visual sides of what the animation could become. In addition seeing the tower in reality puts into perspective the elements and textures of the building; for example the majority of the brick was a burnt red colour, so anything thats red projected onto the building would not be visible. Also there was a lot more curves and bumps to the tower that I hadn't noticed previous, I felt this was something to engage with and not to dismiss, experimenting with the buildings layout and architectural features might offer a more visually exciting and impactful projection.
After visiting the tower and grasping the process and techniques of projection mapping, in turn learning the visual effects that can be created using the process, I began to brainstorm initial ideas and themes surrounding the brief and the season of Autumn. First draft ideas ranged from exploring the patterns and visual playfulness of fireworks, to the spooky atmospheres of halloween and describing the ever changing and preparation of wildlife in Autumn. Along with drafting first stage concepts and themes, I also started thinking about the animation technique, wether to create a vastly digital narrative, or go with a more traditional and hand drawn approach. My decision was made to go with a hand drawn animation technique, when during the briefing and research I found a lot of existing projection mapping consists mainly of digital and 3D animation; I wanted to explore and challenge mixing a traditional technique with the modern process of video mapping. With the animation process established, I looked over my initial ideas and decided to choose Autumn wildlife, I felt out of the three the wildlife theme offered a stronger narrative to play with, with opportunities to experiment with subjects such as change, preparation and evolution.
The next stage of the project was researching into the range of wildlife in and surrounding Eastbourne, whilst exploring the process of change and preparation that wildlife goes through during Autumn. From this I gathered a series of initial sketches and drawings highlighting a range of wildlife, from owls, foxes and badgers to mushrooms, meadows and trees; these basic samples established the framework to build my animation upon. After a storyboard was settled I created a rough animatic using my initial sketches which I converted into .gif files, this offered the first visual perspective of what my animation would look like on the tower.
From then I began creating the final animation drawings, using the technique of rotoscoping I mixed mediums working from pencil to ink, in turn generating variable textures, patterns and visual emotions. Once I had finished all the single framed rotoscoped drawings I scanned each of them into the computer, then editing them in Ps along with generating single .mp4 files for each scene, which I then took into Ae to composite each single animation into a narrative. Furthermore using Ae I was able to digitally map my wildlife animations onto the Eastbourne Tower, using a template supplied by W.E.S.
With the single animation .mp4 files composited and mapped onto the digital template of the tower, I focused on introducing elements of colour. I initially experimented with a variety of different layouts and process’s to generating colour, ranging from converting my black and white animations to different autumn colours to overlaying whole sections of colour onto the tower. In the end I found myself blocking and masking certain architectural features of the tower out with changing colour, the final outcome being a colour generated template of the tower that I could then overlay my animations, adjusting the opacity so that the animations blend with the autumn themed colours and shades.
With the animation and compositing elements of my projection completed, it was time to input aspects of audio to bring the silent animatics to life. Initially I thought about featuring a song with an natural/wilderness atmosphere to it, artists such as Bob Dylan and Neil Young. However once overplayed with the animation sequence the audio and visual didn't work together, I felt it was the input of vocals that wasn't quite right. So I decided to make my own soundtrack for the narrative, using garage band I mixed a sequence of sound that is fairly muted in order for the animation to speak for itself.
With the soundtrack to the animation completed, I finalised some touches to the order of structure to make the narrative a little clearer, then exported the final animation projection sequence to a .mp4 file. On exporting I created three versions of the same piece, a black and white, coloured inverted overlay, and coloured overlay version, with in mind that the black and white version would work better with the projection setup, but I still wanted to explore the coloured elements.
Overall I am very happy with my final outcomes, looking back I feel my black and white version works the best for the reason that the wildlife animatics are much more visible, in turn making it easier for the audience to understand and read the narrative. However the coloured versions emphasise the change in elements and wildlife but ultimately highlight the architecture to the tower, yet I feel the single animations get lost within the changes in colour making for a visually exciting and interesting piece but with a misunderstood narrative structure. The music is subtle and peaceful, allowing the moving images to speak for themselves and relax within the sequence. On reflection the final scene is engaging, playful and stimulating but ultimately challenges the concept of projection mapping. The next stage of the project was to await a decision from W.E.S and the Council to see if my projection animation would make it into the light show.
0 notes