The OSUser() function always returns the current user in the form DOMAIN\USERNAME. You can use of course what Kaushik and brindlogcool have suggested, but it will always be part of that USERNAME. So the result will always be as cryptic (or clear) as the value of USERNAME is.
Another way to work that around is to add, either manually or reading directly from the AD if your have a user allowed to do so, a new field fullName or displayName to your data model with the complete Name of your users, so when the user logs in there is always one value that shows the First Name and Last Name. You can use Match() and Concat() to get that, or Only() with some set analysis, depending on how you load your data.
Hope that helps.