<\/a>Very subtle changes today. \u00a0Today, I flipped the switch and Tycoon is now rendering entirely using OpenGL shaders, instead of the fixed function pipeline.. \u00a0My games have always used OpenGL shaders for the glowing “bloom” effect typically used on vector lines. \u00a0However, until today they rendered everything other than the “bloom” using OpenGL’s standard functions. \u00a0(those standard functions still work, if someone runs MMORPG Tycoon 2 on a computer which doesn’t support the new shaders, or runs them too slowly.)<\/p>\nRight now, the difference from shaders is rather small; \u00a0mostly to do with lighting and specular highlights on objects. \u00a0OpenGL’s fixed function pipeline calculates lighting on each vertex of a model, and then “smears” that lighting data around between the vertices. \u00a0The new shaders I’ve written perform all of the lighting calculations per-pixel, which gives much nicer, much smoother lighting effects and shiny spots on smooth objects.<\/p>\n
But now that I’ve flipped the switch, I’m thinking about perhaps doing other things in the shaders as well. \u00a0Grass movement, perhaps. \u00a0More intricate ground clutter. \u00a0There are lots and lots of options, really. \u00a0But I’m going to try to restrain myself from going overboard on these sorts of graphical touches for a little while longer, yet.<\/p>\n","protected":false},"excerpt":{"rendered":"
Very subtle changes today. \u00a0Today, I flipped the switch and Tycoon is now rendering entirely using OpenGL shaders, instead of the fixed function pipeline.. \u00a0My games have always used OpenGL shaders for the glowing “bloom” effect typically used on vector lines. \u00a0However, until today they rendered everything other than the “bloom” using OpenGL’s standard functions.…<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[24,25],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/so9WK-subtle","_links":{"self":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1226"}],"collection":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/comments?post=1226"}],"version-history":[{"count":0,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/posts\/1226\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/media?parent=1226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/categories?post=1226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vectorstorm.com.au\/wp-json\/wp\/v2\/tags?post=1226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}