(March 2016) Monthly WIP screenshot thread

I think it’s clear what he means regardless of term used since he’s specifically talking about generating glyphs of different sizes at runtime (a font) from his single TTF (TrueType Font which actually contains a typefact, confusing, eh?)

For the “what are they on about?” crowd:

Basically, if you are using old blocks of letters to make physical prints then you should worry about what a typeface versus a font. Else… it probably doesn’t matter. :slight_smile:

I will not argue with you Paul because:
a) you are always right
b) see a.

I’m just a little tipsy and my internet is broken, slowed to less that 14.4k modem for over a week …

Sorry I was being argumentative for no reason community. @Robbi_Blechdose your work is fantastic, thanks for all your hard work =)

… damn @pspeed … =P

1 Like

Aw, man… you are 100% no fun. :slight_smile: Where is the @thetoucher who would have called me names?

I find language arguments funny sometimes is all.

P.S.: my wife will be the first to tell you that I’m not always right. :slight_smile:

3 Likes

To lighten up:

Well today I learned about typefaces, thanks everyone

It’s often tough to tell when people on a public forum also have a history communicating offline, so I’d just like to say that for the record: @thetoucher is one of my very favorite people here. No joke. I think the forum is way less interesting when he’s on hiatus.

Contrary to his claim that I’m always right, we’ve had many many a late night (for me) chat where he asks me some question, I provide an off-the-cuff answer, and he then proceeds to producing mounting evidence that I had no idea what I was talking about. :slight_smile: “I’m not saying your wrong… but can you explain these results I’m seeing that show you’re wrong…”

Meanwhile his images are looking better and better because he somehow plowed past my advice anyway.

Not to be pedentic, but you probably meant @Tryder

I suppose one could use the term typeface or font for what I’m working on. Never gave much thought to it myself, but based on pspeed’s link font might be a better fit.

“Open up Microsoft Word and you’re asked to choose a font, not a typeface. From the perspective of Microsoft’s designers, this makes perfect sense. At any given time, after all, you’re working in a specific size and weight of a typeface. This is the proper term.”

In this case the TrueTypeKey, the AssetKey for the font loader, is specific for each size and weight. You would have one key for bold 12 point serif, another for italic 12 point serif and another for plain 20 point serif so each instance of the font class represents a single font rather than an entire typeface.

This is based on java.awt.Font in which a different instance is required for each size and style.

P.S. Thanks for bringing it up actually, I actually didn’t know the difference between typeface and font and it’s good to know. I’ve learned a good deal about fonts recently heh. Creating an atlas isn’t as cut and dry as I thought it would be. For instance, obviously, some characters extend below the baseline and java gives you a descent variable that’s supposed to tell you how far, but according to the docs some characters extend below even that value and into the next line. Others might extend beyond their Xadvance into the next character etc…

Fonts are without a doubt a horrible mess everywhere. I think we probably still drag cruft along from the 1600s.

So I am discovering. Occasionally I consider writing my own TTF parser, but I’m pretty sure I don’t want to delve that far into it. The awt font stuff seems a little buggy at times. Using getDescent gave me a value of six for every single character which is quite useless.

You shouldn’t have to write your own parser. But you might want to do your owns bounds discovery using the paths.

I do that in the mesh generator. Java.awt also has a logical bounds method which is useful because it gives me the bounds of the area the shape should appear in which is different from the bounds of the shape. A ^ for instance has a larger logical bound than visual bound because it’s displayed above the baseline rather than on the baseline. In some fonts it is also displayed beyond the xadvance encroaching on the next character.

So in the atlas I can’t simply render the character as is because it ends up being displayed in the next character block, I have to modify its position by the amount it extends above, below, left or right of its origin then restore that offset when creating the quad mesh.

Thanks @Robbi_Blechdose xD.

I’m going to add a fog filter later when I make the map bigger. At this point, you can clearly see the borders are too small ;).

The SkyControl is a plugin created by @sgold that simulates day/night cycles and has a beautiful skybox with generated (I think) clouds. I thought this project was dead, because, as most of you may now, googlecode has shut down, and the author didn’t port the project to github. However, you’re lucky because sgold is “back on track”, and the SkyControl was ported to Github

Actually you are right ;), I should be able to use the shape bounds to determine the shape’s offset from the origin. Looking forward to trying that out tomorrow, now it’s bed time. Dunno why everyone’s still awake here get some sleep! Maybe you all live on the other side of the planet, 04:30 here.

It’s 4:30 AM here too but I keep strange hours. I’ll be up for another hour at least… maybe two.

I tend to keep odd hours myself. Supposed volunteer at the food pantry in several hours, we’ll see if I make it in, I’m pretty sure there’ll be more than enough volunteers tomorrow.

Not really a WIP since it’s completed but well


5 Likes

Technically this is more from the last couple of months but whatever.

I’m building some world creation tools:

Related to that an experiment with hydraulic erosion:

And a girl for my game i have been modeling (now making animations and improving the skeleton/rig):

19 Likes

Is that an application that replaces old SDK?
In the node, by clicking ‘stop all’ you stops every single controller under that node or you disable it inside the node? I’m not familiar with 3.1

This is basically the 3.1 SDK. I just added this functionality.
If you click stop all it’ll simply pass it on to all childs until it eventually hits a control which is stopped then.