21/12/2007, 17:30
|
|
#1
|
|
Alien dari lab GAIB
Join Date: Jul 2005
Location: lab gaib itb, bandung
Posts: 1,587
|
Bitmap Font Maker
beberapa hari yang lalu lagi iseng bikin library bitmap font bwt SDL (bwt mengganti SFont). trus bikin tools pake delphi untuk meng-generate bitmap fontnya.
source-code & binary silakan di unduh di sini
versi terakhir baru bisa bikin bitmap font yang plain (solid fill 1 warna), format output BMP, ada pilihan alfabet yang kompatibel sama SFont
rencananya mau sampe :
- arsir gradasi (gradient fill)
- arsir pola dari bitmap
- efek (outline, shadow)
|
|
22/12/2007, 22:23
|
|
#2
|
|
Alien dari lab GAIB
Join Date: Jul 2005
Location: lab gaib itb, bandung
Posts: 1,587
|
ho? tidak ada yang berkomentar kah?
yasu, barusan gw dah implementasi gradient, bitmap, sama outline.
source & binary bs diunduh di sini (277KB)
ini sampel hasilnya
output1.PNG
|
|
23/12/2007, 00:39
|
|
#3
|
|
Dumb Flash Scripter
Join Date: Apr 2005
Location: malang
Posts: 1,380
|
Wah hurufnya keren! btw di aplikasi ini ada perbedaan penggunaan spasinya gak om peb, misale huruf A, M, W memiliki spasi yang berbeda jika digunakan dengan huruf yang lain. Soale dari scrinsot nya sepertinya gak dipakai.
|
|
23/12/2007, 06:26
|
|
#4
|
|
Ulat tak berbulu
Join Date: Dec 2003
Posts: 1,674
|
Wui keren bisa modify efek dari dalem  , btw bukan maksud hati membajak thread ini cuman mungkin bisa buat bahan contekan Bitmap Font Builder
__________________
"Experience is something that you got when you don't get something that you want" - Randy Pausch ( The Last Lecture )
"The brick wall is there for a reason, to separate those who really want it and the rest" - Randy Pausch ( The Last Lecture )
|
|
24/12/2007, 13:05
|
|
#5
|
|
Alien dari lab GAIB
Join Date: Jul 2005
Location: lab gaib itb, bandung
Posts: 1,587
|
@wandah : untuk selanjutnya dah masuk dalam rencana sih. jadi selain output file bitmap, ada output file teks yang isinya deskripsi dari masing-masing symbol (width, baseline position, offset). (tp emang blm di implementasi  ).
@L_O_J : oh itu dia yang dulu pernah gw pake dan hilang bersama laptop..  ... dan akhirnya gw memutuskan untuk buat sendiri.. sekalian mengakomodasi kebutuhan spesifik (hanya alfabet tertentu kyk cuma angka doang). dengan sedikit bumbu image processing.. and voila.. cukup memuaskan.. walaupun utk speed masih blm cukup memadai
nantinya sih gw juga mau bikin versi vektor font (secara sebenernya dah diajarin waktu kuliah grafika dulu..).
|
|
02/04/2008, 13:32
|
|
#6
|
|
Senior Member
Join Date: Dec 2007
Posts: 257
|
sori aku bangunin thread lama, soale aku juga bikin, dengan engine subpixel-antialiasing yg pernah aku bikin dulu, nah outputnya sudah mengandung lebar2 tiap karakter dan start saat digambar. di Font builder ini juga bisa mengatur bagaimana kerning dan subpixel posisinya supaya dengan font yga berukuran kecil sekalipun (dibawah 9) hasilnya tetep bagus dan tetnunya memaksimalkan posisi di bitmapnya supaya minim memory dan ukuran file outputnya.
Hasilnya aku pake di game RPG yg aku buat. Di engine yg mendukung tekstur mapping mudah memakainya.
Outputnya grayscale 8 bit yg nanti di engine game/lainnya harus diinterpretasikan sebagai alpha channel.
|
|
02/04/2008, 14:02
|
|
#7
|
|
Alien dari lab GAIB
Join Date: Jul 2005
Location: lab gaib itb, bandung
Posts: 1,587
|
publish dong om.. 
gw dah lama nggak ngapdet nih..
|
|
03/04/2008, 01:13
|
|
#8
|
|
Exavoltism Prophet
Join Date: Dec 2004
Location: Djakarta
Posts: 648
|
Quote:
Originally Posted by ryannining
sori aku bangunin thread lama, soale aku juga bikin, dengan engine subpixel-antialiasing yg pernah aku bikin dulu, nah outputnya sudah mengandung lebar2 tiap karakter dan start saat digambar. di Font builder ini juga bisa mengatur bagaimana kerning dan subpixel posisinya supaya dengan font yga berukuran kecil sekalipun (dibawah 9) hasilnya tetep bagus dan tetnunya memaksimalkan posisi di bitmapnya supaya minim memory dan ukuran file outputnya.
Hasilnya aku pake di game RPG yg aku buat. Di engine yg mendukung tekstur mapping mudah memakainya.
Outputnya grayscale 8 bit yg nanti di engine game/lainnya harus diinterpretasikan sebagai alpha channel.
|
ryaninning subpixel... w0w... sama dunk ama cleartype... publish donk om...
__________________
The Mighty Coding Cat
|
|
05/04/2008, 02:14
|
|
#9
|
|
Senior Member
Join Date: Dec 2007
Posts: 257
|
http://sourceforge.net/users/ryanwidi
lihat di projects Next RYF
Kalo font makernya nih bisa anda download. Outputnya 3:
1. fontname.hnt - Hint buat ntar kalo mau diedit2 lagi
2. fontnamt.fnt - dengan format khusus ntar aku kopikan loadernya
3. fontname.bmp - grayscale bmp, tapi gak ada info width, start, dll
Code loadernya:
Code:
type tuifont = object
wc,hc:integer;
tx:integer;
shader:pointer;
map:pointer;
pxychars:array[0..255] of record x,y,w,h,fx:integer;a:boolean;end;
procedure initfont(fn:string);
procedure textout(px,py,pz,color:integer;txt:string);
procedure textsize(txt:string;var w,h:integer);
procedure sdwtextout(px,py,pz,color:integer;txt:string);
end;
procedure tuifont.sdwtextout;
begin
textout(px+1,py+1,pz,0,txt);
textout(px,py,pz,color,txt);
end;
procedure tuifont.textout;
var sp,i:integer;
quad:array[0..3] of t2dpoint;
begin
vary.flatcolor:=color;
sp:=pxychars[ord('!')].w-2;
for i:=1 to length(txt) do begin
with pxychars[ord(txt[i])] do begin
if a then begin
px:=px-fx;
quad[0].x:=px*sdetail16;
quad[0].y:=py*2;
quad[0].z:=pz;
quad[0].u:=(x)*sdetail16;
quad[0].v:=y*sdetail16;
quad[1].x:=(px+w)*sdetail16;
quad[1].y:=py*2;
quad[1].z:=pz;
quad[1].u:=(x+w+1)*sdetail16;
quad[1].v:=y*sdetail16;
quad[2].x:=(px+w)*sdetail16;
quad[2].y:=(py+h+1)*2;
quad[2].z:=pz;
quad[2].u:=(x+w+1)*sdetail16;
quad[2].v:=(y+h+1)*sdetail16;
quad[3].x:=(px)*sdetail16;
quad[3].y:=(py+h+1)*2;
quad[3].z:=pz;
quad[3].u:=(x)*sdetail16;
quad[3].v:=(y+h+1)*sdetail16;
px:=px+w-1;
scene.renderer.drawpoly(@quad[0],4,dword(map),shader);
end else px:=px+sp;
end;
end;
end;
procedure tuifont.textsize;
var px,py,sp,i:integer;
begin
px:=0;
sp:=pxychars[ord('i')].w-2;
for i:=1 to length(txt) do begin
with pxychars[ord(txt[i])] do begin
if a then begin
px:=px-fx;
px:=px+w-1;
end else px:=px+sp;
end;
end;
w:=px;
h:=pxychars[ord('j')].h;
end;
procedure tuifont.initfont;
var i,n,jml:integer;
rd:byte;
f:file;
procedure rbyte(var v:integer);
var b:byte;
begin
blockread(f,b,1);
v:=b;
end;
begin
assignfile(f,fn);
reset(f,1);
rbyte(jml);
for n:=0 to 255 do pxychars[n].a:=false;
for i:=1 to jml do begin
rbyte(n);
with pxychars[n] do begin
rbyte(x);
rbyte(y);
rbyte(w);
rbyte(h);
rbyte(fx);
fx:=fx-64;
a:=true;
end;
end;
rbyte(jml);
get8mem(map,64,jml);
blockread(f,map^,256*jml);
closefile(f);
end;
|
|
05/04/2008, 02:19
|
|
#10
|
|
Senior Member
Join Date: Dec 2007
Posts: 257
|
kalo yg creator itu, kan buat game jadi subpixelnya nggak jalan di gamenya, cuman di fontcreator, gunanya membantu/hint dengan geser trackbar agar font anda jelas terbaca, meski ukurannya super kecil.
Cara pakainya:
1. Ganti font yg anda mau
2. coba klik preview, kalau anda melihat sebuah huruf yg kurang pas
masukkan huruf di kotak atas, kemudian geser2 trackbar, klik preview lagi
3. kalo perlu tambah/kurangkan-kan lebar hurufnya
4. sampai semua huruf ok dan anda puas.
5. Tekan save texture.
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|