Czcionka do gry RPG

0

Witam, nie jestem pewien czy to zagadnienie w ogolę będzie związane stricte z c++ więc jeśli nie to proszę o przeniesienie do innego działu.

Tworzę grę RPG na pracę inżynierską w c++, Visual Studio 2013 z wykorzystaniem biblioteki SFML. Nie jestem zadowolony z wyglądu mojej czcionki. W załączniku widać pierwsze od lewej to z mojej gry, a dalej Diablo II i Patch of Exile. Chociaż używam czcionki z Diablo II w formacie .ttf to jednak daleko mi z efektem do oryginału. Wszystko dlatego że znaki w Diablo składają się z wielu kolorów, mają taką ciemniejszą otoczkę a w środku są jaśniejsze. Podobnie to wygląda w PoE, jak i zresztą w reszcie gier. Teraz pytanie, jak uzyskać taki efekt?

ttfcomparasion.png

1

W SFML-u nie ma niczego co pozwoli ci osiągnać ten efekt w sposób bezpośredni. Jak Ci na tym zależy to zrób sobie jakiś osobny generator znaków które będzie je zapisywać do jakiegoś spritesheeta (lub każdy znak do osobnego obrazka) potem jakąś klase która będzie je układała te znaki koło siebie tworząc tekst. Albo spójrz sobie do source kodu SFML-a, może znajdziesz tam coś konkretniejszego jak wygląda renderowanie fontów, i na podstawie tego sam coś napiszesz. Albo sam coś wymyśl.

3

Problemem może być to, że SFML słabo radzi sobie z antyaliasingiem i innymi opcjami w tekstach, niestety nic z tym nie zrobisz.
Musiałbyś użyć innej biblioteki do wyświetlania tekstu lub stworzyć bitmapową czcionkę.

@Edit
ref
https://github.com/SFML/SFML/issues/228

@edit2
Jest jeszcze opcja, żeby renderować tekst najpierw na osobny render target, przepuścić przez jakiś shader, i dopiero wyrenderować.
Ostatnio udało mi się uzyskać ładne efekty aplikując lekko przekształcony coherent noise user image (zesaturowany płomień z gimpa ze zmienionym kontrastem i jasnością) na bitmapę metodą Grain Merge (szum można też wygenerować w shaderze, nie trzeba osobnej tekstury)
http://gmc.yoyogames.com/index.php?showtopic=606721 <-- wzory
efekt na bitmapie (na tekście powinno też dobrze się komponować z odpowiednio dobranym kontrastem i jasnością)
przed
user image
po
user image

0

@Sopelek Własnie próbowałem coś z SFML kombinować , ale skoro się nie da to na razie sobie to zostawię bo mam pilniejsze rzeczy do dokończenia. Ale jakby jednak mnie kiedyś naszło zmienić bibliotekę do samego wyświetlania tekstu to jesteś w stanie podać jakąś która by sobie dobrze z tym poradziła?

@Edit: Z tym shaderem to może być jakieś rozwiązanie, ale trzeba by zobaczyć jakby to wyszło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1