Remember to make your own backup of posts before submitting.
Today I invented a perfect anti-aliasing technique that I hadn’t envisioned. I don’t know that it’s ever been used or independently invented before. Often times I feel like my life is movie.The technique, like the others I’ve pioneered for Sword of Moonlight during the recent months is unorthodox. It was born out of getting just right up to the finish line and wanting like mad to make it across. It’s completely “free”. Both in the sense that it doesn’t impact performance at all, literally, and is ready for all GPU based integrated graphics or whatever. And in the sense that I am certainly not interested in holding it to my chest. To the contrary I wonder how to get it out to the masses?I’m shifting my focus with Sword of Moonlight to being all about this technique. The Moratheia project looks like a movie. Maybe I’m lovesick, but it looks like Pasolini’s Canterbury Tales. I’m not sure why, something about the author’s artwork to be certain, but it’s never looked fully real before like it does now. I caught that film recently on Netflix so it’s fresh in my mind.There is really very little to this. Except it imposes some restrictions, and the map editor tool chain may require special attention. For the map geometry cracks are everywhere, it feels like a PlayStation game, like classic King’s Field, but that’s no excuse. To use this technique the vertices must be manipulated in “homogeneous space” so there has to be common vertices everywhere; I haven’t seen any non-map tile elements that don’t adhere to this.There are also some trouble with decal like polygons. I will probably see about making everything that isn’t map geometry decal like, but I don’t know if that is universally supported by hardware, and I don’t know how to implement it in a shader. This has to do with manipulating the vertices again. It doesn’t change the depth at the vertex, but it does inside the polygon.There is a lot to attend to. This movie like quality is so impressive, it feels like it could be a clean break from the history of video games into something fresh and exciting (sometimes my life doesn’t feel like a movie. Sometimes it feels like one of those games, where you are all alone, the center of the universe, but no one else your equal nor peer. That much is a damn shame.)
DX_UNFINISHED //todo: combine into float[4] dx_d3d9c_vsconstant(DDRAW::vsPresentState,rcpw*2,'x'); dx_d3d9c_vsconstant(DDRAW::vsPresentState,rcph*2,'y'); unsigned period = 3; float power = 0.5f, testing = (0.5f-float(DDRAW::noFlips%period)/(period-1))*power; dx_d3d9c_vsconstant(DDRAW::vsPresentState,rcpw+rcpw*testing,'z'); dx_d3d9c_vsconstant(DDRAW::vsPresentState,rcph+rcph*testing,'w');
EX_UNFINISHED#define classic_aa() \ /*sign may be unnecessary*/\ " float4 hvp = rcpViewport*Out.pos.w; "\ " Out.pos.xy-=fmod(Out.pos.xy,hvp.xy); "\ " Out.pos.xy+=hvp.zw*sign(Out.pos.xy); "
I am an absolute outsider in the game industry. I want no part in it. Yet something happened a few days ago, that I think must be shared. I think this changes everything for video game like media.First, I'd approached Michael Samyn of Tale of Tales game about this. He is the only person I felt like confiding in. But he wasn't as receptive and enthusiastic as I'd have liked. I work privately on private projects and think very little about the video game industry. I believe everyone within it is completely misleading each other and producing poor results with diminishing returns. So I am a nobody. And I am a grown man who has always worked on technology but who has no contacts or want to interface with contacts, employer, lawyers and bankers. So I have this tech, and no real outlet. So I decided what probably makes the most sense based on what I've observed, is to just publish this here. In some ways this is simpler than trying to make private arrangements.Now it's possible I have egg on my face, and this is nothing new. But it's my educated guess that it's absolutely new, or otherwise it would be standard practice and a topic of study that is doggedly pursued by hardware vendors. I work with unorthodox techniques that sometimes appear anachronistic. I'm not an oddity, this is just what gets results in my opinion. Creates the best images.Lately I was pressed to play someone's game that was made with the software I am responsible for maintaining, but it wouldn't play on my workstation. So first I disabled anti-aliasing (MSAA) and that helped a lot, but I began to long for the effect's return. So I began developing alternative forms that are "free" in computational terms. And I got far until I arrived at very difficult cases. High contrast, long run lines. I had a taste for no-cost AA, I wanted to cross the finish line, and that forced me to be creative.Now I have absolutely straight lines, it looks like a movie, and it isn't AA per se. It's a purely 3D effect. It works by using the refresh rate to superimpose the jagged staircases that AA tries to smudge. Instead of AA the eye does all of the work. The basic theory is different from AA, since it cannot be captured in a single still image, and it requires native resolution, and the final more or less perfected technique works alright at 30fps on a 60fps refresh rate (it would probably work better if the refresh rate was locked, but I think personally dedicated fullscreen should've died 15 years ago) but really requires a steady 60fps to create the perfect illusion.It's very primitive at this stage, but beats all forms of realtime 3D imagining hands down, at the cost of a few instructions in the vertex shader. It comes in three or four basic varieties, but I will identify the one that is probably most desirable for basic needs. This can bring television like 3D images to GPU-based integrated graphics chips. Basically it can make realtime-3D mainstream.The theory is to change the staircases that the rasterizer generates every frame, ideally without moving the pixels themselves. The different versions have different trade-offs, but the one that has best results right now for me doesn't necessarily have to snap to pixels, it snaps to half-pixels and can work without doing so, because two frames are blended in the final image. Which can only be done if the effect is at full power, since otherwise the blending causes knots to appear at the joints (which can be a good thing in non-blended/blurred versions since it isolates the smoothing to the joints)The shader code looks like this:float4 hvp = rcpViewport*Out.pos.w;//NOTE: this line is not strictly necessary//when at "full power" with a motion blurOut.pos.xy-=fmod(Out.pos.xy,hvp.xy);//sign may be unnecessaryOut.pos.xy+=hvp.zw*sign(Out.pos.xy);(the Gamasutra form forces a linebreak in the code)The fmod can be optional if you don't mind some side effects. Not a big deal (noted: removing the line completely removes the "pop".)The vertex shader constants are setup like so://half pixel version with minimal popunsigned period = 3; float staircase =(0.5f-float(DDRAW::noFlips%period)/(period-1));///2;float c[4] = {rcpw,rcph,rcpw+rcpw*staircase,rcph+rcph*staircase};dx_d3d9c_vsconstant(DDRAW::vsPresentState,c);(again, Gamasutra form forces the linebreak in the code)Here rcpw is the reciprocal of the viewport width. noFlips is the current frame number, a running count is kept. This is a simple arrangement. There are a few variables. The periodicity is one I haven't had the urge to try to mess with after having something that basically just works.I'm not 100% positive that I've conceptualized the clip-space to pixel number in the HLSL shader correctly. There is virtually no documentation that I can find on the Internet that refers to this explicitly and I haven't felt like formulating experiments.Ideally I'd like to patent this for myself and use proceeds that come from it being implemented as a hardware feature in both chips and displays to seed a foundation that will focus on a New Wave of video game like media that makes use of this technique/technology. I suggested making a "new games" initiative to Michael Samyn as an answer to his "not games" initiative which has run its course.This technique changes a lot of assumptions about how video games work, and I foresee it splitting the history of video games into "old games" and "new games" and I think the future will look more like film and television, if only because it will be a brave new world free from jagged edges and multi hundred dollar systems and expansion cards.Final note. The effect alone is quite convincing. But being primitive at this stage, I combine it with a basket of "free" AA effects, that create eye confusion, like dither. I find images appear artificial without these additional effects in general (with or without the revolutionary effect described here) and I'd be happy to elaborate on these addition effects in the comment section.Please if you can, whoever you are, raise this to the top of Gamasutra so I can be praised for my dumb luck or pilloried.I work on Sword of Moonlight (From Software) which I fully expect to be Minecraft 2.0 and change video games in a more deliberate way than this unexpected happy accident hopefully will. I very much dislike the way shadows are portrayed in video games, ever since stencil shadow volumes appeared and subsequent technologies emerged. I want to change shadows the same way I think I've changed edges forever.NOTE TO EDITOR: By all means please edit any typos. I just want this to be a quick draft/published as is. I don't want to proofread it. Or give it another thought. Thank you.
Page created in 0.1 seconds with 220 queries.