PDA

View Full Version : [NEWS] Film 3D 64 KB, 800x600, 15 phút, có nhạc, vô cùng đặc sắc với ratio 30000:1



Ghostlake114
28-05-2003, 18:37
Bà con down về xem và sốc...
Ai đã từng làm film 3D chắc hiểu vì sao sốc, sốc wá, film cực đẹp, nét, ko có dấu hiệu nén, chỉ có 64 KB, 15 phút, âm thanh tuyệt hảo......
Nhìn chung là ...ko thể hiểu nổi cái wái gì đang xảy ra........

Mach2
28-05-2003, 22:12
Hi hì, GL114 đặt tựa ghê wé.
Nói cho chính xác thì cái này ko phải là film mà là demo. Khác biệt ở chỗ một bên là render sẵn (film) một bên là render realtime. Bởi vì render realtime cho nên mới nhỏ và nét như thế (render realtime thì có nén làm gì đâu cho nên hình nét và rõ kinh, phân giải nào cũng lên vô tư, chỉ tuỳ thuộc card đồ họa xịn thui).
Lần đầu tiên mình xem demo loại này cũng shock mạnh. Ko ai ngờ 64k mà tạo nên đủ thứ như thế, hình ảnh, âm thanh, hiệu ứng đẹp ko ngờ.
Cái mà GL114 đưa lên là demo thứ 8 (fr08) của the farbrausch, một nhóm chuyên làm demo realtime để quảng cáo, trình diễn. Đây cũng là demo đạt giải nhất của cuộc thi symponium party 2000 ở phần 64k demo. Loại thi này đòi hỏi người ta phải viết một trình demo trình diễn, giới hạn trong kích thước 64k. Ngôn ngữ thoải mái. Thoạt đầu mình cũng nghĩ 64k thì làm wái gì mà tạo được cái gì nên hồn, nhưng mà sau khi xem xong thì tá hoả. Người ta đi trước mình xa wá.
fr08 được viết bằng VC++, sử dụng DirectX làm thư viện render. Nói cho thật lòng thì demo về thứ hai đẹp hơn nhiều (7thHeaven), làm raytrace đẹp kinh người, chạy được cả trên DOS do viết bằng Assemble. Mình đợi mãi mà ko thấy nhóm này ra tiếp trong khi the farbrausch thì cứ liên tục xuất xưởng demo mới. Demo đẹp nhất của nhóm này là poem to a horse (fr22).
Kỹ thuật làm demo cũng ko có gì là kinh khủng lém, tuy nhiên nghiêng về lập trình đồ hoạ hơn là mô hình 3D. Nếu bạn nào muốn biết cơ chế các demo này làm như thế nào thì mình sẽ giải thích sau. (giải thích cơ chế thôi, mình hiểu cách làm, tuy nhiên làm được một cái như thế thì ko dám nghĩ đến).
Tiện thể gửi 7thHeaven lên luôn, mình đã gửi lên một lần lâu lém rùi mà ko thấy ai nói gì hết cho nên gửi lại.

Shinra
29-05-2003, 00:18
Wow, tuyệt thật ! Cám ơn Gótlắc với Mach2, trùi ui, mình phải học thêm nữa cho bằng người ta .. Mô phập !

lonelyheart
29-05-2003, 00:34
Đẹp quá bạn down ở đâu vậy.....

Ghostlake114
29-05-2003, 02:50
Từ từ, từ từ ba match, có thể nói rõ hơn được ko???
Mình cũng nghĩ đây là viết code chứ ko thể là xuất film được, khi đọc cái dòng thông báo film render của nó, đã thấy láo rồi
Demo H7 đẹp lắm, thật ko ngờ chỉ có 64 KB....wái thật, chỉ nội map thôi đã chết rồi....
Match có thể nói thêm về kỹ thuật này được ko, cứ cho là viết các eff, model...từ code, nhưng map thì fải lấy từ ngoài vào chứ, làm sao còn có 64 KB nhỉ, như trong demo đầu, có vô số map cơ mà....

ngocquang19877
29-05-2003, 21:23
ừa ừa!lạ thật?down về sao thấy đẹp thía!đẹp kinh khủng,sao người ta làm được hay wé

Ghostlake114
29-05-2003, 21:46
Lại còn fải nhét sound vào nữa chứ, lạ wá....

Shinra
29-05-2003, 22:59
Sound chắc phải ở dạng MIDI rùi, chơi vòng nhiều lần.
Texture chỉ ở dạng trắng đen, màu sắc là do mix với diffuse color của object. Để ý kỹ thì chỉ có 5,6,7 texture thôi ( mây, đá, mặt người, bề mặt mặt trăng ), do texture lặp và trộn bằng mã nên trông đa dạng.
Tất cả vật thể đều được vẽ bằng thuật toán ( chúng chỉ là những hình cầu, trụ ..v.v.. Hình người chạy lúc đầu chỉ là một map phẳng
Nhưng tất cả những thứ này ( kiêm luôn renderer engine ) mà chỉ 64K, phục !

Mach2
29-05-2003, 23:01
Thì viết code mà GL114, nên làm cái gì mà chẳng được.
Mình tóm gọn kỹ thuật làm demo như sau: hiện nay có 2 trường phái chính như sau: Một: tìm cách tối ưu toàn bộ data dùng trong demo (model+texture+music+scene data) càng nhiều càng tốt, cái này điển hình là demo 7thHeaven. Hai: Sinh toàn bộ các dữ liệu model+texture trong demo, music và scene data (dữ liệu scene, cho biết lúc nào vẽ cái gì, làm cái gì, etc...) và tìm cách nén tối đa, loại này phổ biến hiện nay, cái fr08 GL114 gởi lên là ví dụ đó đó.
Music: Cái dễ nói trước, music thì dùng nhạc MIDI (file *.mid), loại âm thanh này lưu nốt nhạc nên nhỏ xíu, bạn tìm mấy file của Windows có sẵn mà xem, vài kb mà nghe được khá lâu, giống như bạn chơi organ, chỉ lưu nốt nhạc và giai điệu (rythm) có kèm theo gam... Bạn nào chơi nhạc thì biết. Nén tối đa, khoảng 2~5k cho một bản nhạc nho nhỏ.
Scene Data: Cái này thì khó giải thích, nhưng mà bạn nghĩ thử xem, demo thường được viết bằng các trình đồ hoạ, người lập trình sẽ viết vài function và procedure, sau đó dùng các hàm này như script để vẽ scene. Nói đơn giản, scene data được ém vào ngay trong chương trình. Cái này khi dịch sẽ thành mã máy, nhanh vô cùng, nhỏ vô cùng, ko cần tối ưu gì cho mệt.
Model: Như đã nói ở trên, có 2 trường phái ém, trường phái đầu tiên tìm cách mô hình một hình thể càng đơn giản càng tốt (để tiết kiệm đó mờ, giả sử một model khoảng 500 poly thì cần ~750 vertex, tính ra khoảng 750x3x2(toạ độ mỗi vertex cần 3 thông số, mỗi thông số là số thực cần 2 bytes để lưu), như vậy mất khoảng 4k cho một model như vậy, chưa kể texture và normal vector, nhân lên ta có 12k là ít nhất cho một texture. Waste 12k is not an option!!! Vì vậy, các demo ko dùng một model đầy đủ nào hết, toàn bộ là model thu gọn (giả sử một model hình viên thuốc chỉ bao gồm dữ liệu chiều cao viên thuốc, bán kính bo, đường kính và quan trọng nhất là mã để sinh các vertex của viên thuốc đó, 7thHeaven dùng cách này để lưu các model, nếu bạn để ý kỹ, tất cả các model của demo này đều dùng các primitive đơn giản và thực hiện toán tử Boolean lên nó, đối với một engine raytrace, việc render mí cái này là chuyện nhỏ (7thHeaven viết engine raytrace bằng Assemble!!!). Đối với fr08 thì mọi chuyện phức tạp hơn, họ dùng các phép toán hình học tự nhiên để sinh toàn bộ model (bạn có thể ko tin điều này, nhưng đó là sự thực, các model của the farbrausch chỉ lưu một số thông tin rất ít (như các toà nhà, vật thể cụ thể... mới cần lưu mà thôi). Một số model trong các demo của the farbrausch (con két, đèn đường…) nhìn rất đơn giản và đẹp tuy theo họ chỉ nói là khoảng vài chục vertex mỗi model, tức khoảng 50 poly cho mỗi model, một số model đơn giản có thể đơn giản bằng primitive cho tiện. Tuy nhiên điểm hay nhất của the farbrausch là sinh các model recursion, hay các model fractal, tức các mô hình tự định nghĩa và mô hình gồ ghề (ví dụ cụ thể như cây cối-mô hình tự định nghĩa, và terrain-mô hình gồ ghề). Các mô hình này được xây dựng thuần tuý toán học nên chẳng cần lưu model làm gì hết. Tóm lại, đối với các demo, các model thường được tối ưu hết cỡ, do đó theo ý tôi chiếm đến 8kb là hết cỡ.
Texture: Phần này do GL114 hỏi, và đương nhiên là phần dễ gây thắc mắc nhất. Mình cũng chia thành 2 trường phái như trên, đó là cách dùng texture có sẵn được tối ưu và cách dùng các texture tự sinh bằng các hàm toán học. Texture tối ưu là cách làm của 7thHeaven, họ tối ưu tất cả các texture có trong demo (kích thước texture 128x128x8bit). Bạn thử tìm một hình nào đó, rescale nó về kích thước này, giảm quality xuống còn 30-60% thì kích thước chỉ còn 1-2kb. 7thHeaven dùng cách này để lưu khoảng chừng 10 texture vào chương trình (bạn thử đếm xem họ xài mí texture?). Chỉ có họ mới dám làm cách này bởi vì engine render của họ là tự xây dựng nên mã khá nhỏ, dư nhiều chỗ trống. Nhưng cũng phải công nhận là họ tối ưu tốt thật, hình người liên hoàn xuất hiện ở đầu demo khoảng 8 hình mà cũng chỉ có chưa đến 2kb mà thôi. the farbrausch thì khác, họ tự sinh texture. Bạn để ý thấy đoạn loading ở đầu demo là họ đang sinh texture đó, lúc đó mà chặn thread coi thì sẽ thấy demo này đang ăn khoảng vài chục MB bộ nhớ, đó là texture được sinh ra đó. Hiện nay giải thuật sinh texture phổ biến nhất là kỹ thuật Perlin Noise, dùng các nhiễu để tạo các hình ảnh ngẫu nhiên khá tốt. Bạn có biết khói, marble và wood texture trong 3dsmax là dùng Perlin Noise để tạo không? Vì vậy, nếu bạn có thể làm được texture gì với 3 chức năng đó của 3dsmax thì các demo cũng làm được. Hồi đầu mình cũng hơi nghi ngờ khả năng của nó nhưng cho đến lúc làm được vài cái Perlin Noise thì mới hiểu rõ. Perlin Noise ngoài tạo texture còn có thể làm được đủ thứ trên đời, như mô phỏng các hiện tượng ngẫu nhiên hay mô phỏng ứng xử. Bạn có thể lên trang web của Ken Perlin để xem một số áp dụng của ông (bạn đã thấy 3D trong trình duyệt Web chưa? Nếu chưa thì nên vào xem thử. Và tất cả các model và texture trong trang web này hầu hết được tự sinh!!!). Đây là link http://mrl.nyu.edu/~perlin/
Hiện nay, the farbrausch đang đứng đầu danh sách 64kdemo bằng 3 giải nhất liên tiếp trong 3 năm. Trong số các demo của nhóm này, demo poem to a horse là demo mình thích nhất, đây có thể xem là một demo trình diễn các model và texture tự sinh đẹp và hấp dẫn nhất. Các hình ảnh render giả raytrace y như thật. Tất cả cũng chỉ trong 64k. Mình gởi kèm cho các bạn xem thử.
Nói tóm lại, mình cảm thấy đã giải thích khá chi tiết, tuy có hơi khó hiểu. Thế giới demo đồ hoạ là một thế giới vô cùng hấp dẫn (đối với mình). Bạn nào có hứng thú thì trao đổi với mình thêm các kỹ thuật lập trình đồ hoạ, như một số hiệu ứng trong các demo trên đây.

Mach2
29-05-2003, 23:02
hà hà, Shin nhìn ra được như vậy hay wá hay wá!!!

Shinra
29-05-2003, 23:33
Shin chỉ coi mới có cái 7th Heaven thui, nhưng mà hay thì sao hay bằng cái bài dài thòng của Mach 2 được chéh ! Hahah

lonelyheart
30-05-2003, 16:07
To Mach2:
Mình có làm 1 hiệu ứng mưa như sau:
+Tạo 1 vertex buffer gồm 2 đỉnh của giọt mưa
+3 mảng động Speed, Scale, Location cho từng giọt mưa;
+Quãng đừơng cho từng giọt sẽ tính toán theo thời gian
Như vậy với con mưa 1000 giọt sẽ cần 1 vòng for với 1000 lần tính toán quãng đường ( dựa trên Speed*dTime*vector3Direction( thời gian giữa 2 lần Render ), và 1000 lần set World Matrix cho từng giọt ---> hệ thống chậm hẳn lại chỉ còn 100fs trên máy P3 450, VoodooBanshee của tui
Nhưng trên chỉ là mưa dạng chiếu trực giao tức là 2D( set ortho view trước khi render mưa ) nên khi camera ở trên nhìn xuống thì vẫn thấy mưa từ trên cửa sổ Window rơi xuống mép dưới của cửa sổ trong khi đúng ra nó phải rơi tập trung vào giữa--->Để giải quyết phải dùng mưa 3D
-Mưa 3D phải có thêm phần tính toán Bounding Box của Local Viewing Frustum( tức là Viewing Frustum nhưng với Zn và Zf thu nhỏ lại nhằm giảm bớt độ rộng của không gian ) mục đích của việc làm này là đảm bảo 90% hạt mưa rơi vào tầm nhìn( nằm trong Bounding Box ), việc tính toán này chỉ làm 1 lần khi camera thay đổi nhưng tốc độ càng chậm hơn còn 50fs cho 2000 giọt
-Sau đó mình có làm thêm tuyết, cũng giống mưa 3D nhưng lần này vertex buffer chứa 4 đỉnh của 1 mặt chứa tex tuyết, --> như vậy phải tốn thêm CPU cho việc tính sao cho mặt tuyết luôn xoay về hướng Camera( hiệu ứng Billboarding )--> frame rates xuống tệ hại chỉ còn 16fs cho 2000 giọt nhưng vấn đề khác nảy sinh là tuyết chỉ rơi theo đường thẳng chứ không có "rung rinh" trước gió như thưc tế--> vấn đề này hiện nay mình vẫn chưa có cách giải quyết, hi vọng được bạn giúp đỡ..........

Ghostlake114
30-05-2003, 21:41
Nghe bác Match cho 1 bài sướng wá....
Hè hè, nhưng mà ko có căn bản nên nghe chỉ biết lờ mờ...
bác cho em vài link căn bản để có thể bắt đầu ko????

Mach2
30-05-2003, 22:17
GL114 à, đi sâu vào demo là đã đi vào lập trình đồ hoạ rùi. Cái này khó nhưng mà cũng dễ ghiền lém, y như vẽ 3D vậy. Hồi trước mình cũng mê vẽ 3D lém nhưng mà đếm lại hoa tay thì nản quá nên chuyển sang cái này.
Mình viết hơi kỹ thuật nên khó hiểu, bạn đọc thử bài making of Heaven7th này thử xem, dễ hiểu hơn mình nhiều ;)
http://www.demoscene.hu/~picard/h7
Demo mình down chủ yếu từ www.pouet.net với www.scene.org. Chỉ nên chọn mí cái top mà down thui, demo 64k ít lém, vài MB là thường, down nhiều thì bill sẽ up nên cẩn thận.
Demo fr22 đạt giải nhất symponium 2002 của the farbrausch là demo có nhạc đã nhất. Các bạn xem thử?

Mach2
30-05-2003, 23:07
to lonelyheart: vấn đề của bạn mình làm một thread khác để trả lời ngoài rùi. Bạn đọc ở đó nhé.

Vinnie
31-05-2003, 21:40
Ui trời cái Topic này hay wá, bài giải thích của Mach 2 hay thật, nhờ các bác mà em hiểu hơn một chút... Đúng là hay thật

thangop
04-03-2007, 22:44
sao to khong dơ hay xem duoc may file cua cac cau nhi, to thi da tung lam film 3d = 3dmax chua biet lam = thuat toan nhu cua cac ban,chac phai hoc hoi nhieu,hoc hoi nhieu !

vuhoa
11-06-2007, 22:24
cái này thì tơ có 1 bộ trên scene.org

nghiadaisu
12-06-2007, 09:23
ơ hư
sao cac file các bạn gửi lên đều 0kb thế

Cara77
25-07-2007, 13:46
Các bác mới post bài trong năm 2007 làm ơn xem kỹ thời gian những bài post trước là năm 2003, 2004 không hà. Mấy năm vừa qua ddth mình chuyển server mấy lần nên nhiều file mất tiêu đường dẫn , gây nên tình trạng không có KB nào hết. Lần sau các bác xem con số đầu tiên trong ngoặc nếu là 0 nghĩa là chẳng có tí dung lượng nào hết thì đừng download làm gì hi hi.

HuyetMaTK
14-10-2007, 16:23
down xong thi` sử dụng kiểu j` ạ ?

HuyetMaTK
14-10-2007, 16:25
với lại em đang cần 1 bản directx 3D để chơi võ lâm II
anh chị nào có pm em na Y!M : xung.0nljn3
ko các anh chị sharp cho em 1 bản luôn đi

SACUCHE
01-11-2007, 11:46
Tôi chủ yếu đăng ký để xem coy cái đó là cái j . Mà dơn về = 0 0 hà .Tò mò quá đi ai còn úp lên cho tui coi với coi :(

bibimeo
01-11-2007, 16:11
Mấy cái Demo này làm bằng soft gì vậy?

khoadd
02-11-2007, 11:25
minh down ve sao khong được nhỉ

bibimeo
02-11-2007, 17:00
Mấy bài này viết từ năm 2003 đến giờ làm gì còn file mà dơn

A_2_T
27-03-2008, 15:08
Sao không down các file đính kèm được nhỉ

lamqb2410
12-12-2008, 11:18
xin huong dan toi cach lam fim 3d

[=========> Bổ sung bài viết <=========]

sao toi cung khonh the dow file dinh kem duoc

deathsun_k01a3
24-04-2009, 23:38
nghe các bạn mổ xẻ vấn đề đó nghe hấp dẫn wa!nhưng nảy giờ down về xem thử vẩn chưa được,hi everybody!thanks..

calme1202
25-04-2009, 08:16
các bác có thể vào đây tìm down về xem thử ! có rất nhiều đó
http://www.demoscene.hu/demos.php

[=========> Bổ sung bài viết <=========]

trang nè thì nhiều vô cùng !

http://www.pouet.net/prodlist.php?type[]=64k&order=&x=11&y=10&page=6&order=

daiiphone
27-09-2009, 21:06
Link dow ko được cho mình xin lại mình mới mua cái kính để coi 3D

ohpay
18-03-2011, 18:19
ko doawload duoc the???

nino
18-03-2011, 22:47
ko doawload duoc the???

1. Nhớ viết tiếng Việt có dấu.
2. Coi lại bài mấy năm nay rồi, không down được là chuyện bình thường :emlaugh:

nhatdongbmt
18-03-2011, 23:09
thế là bỏ sao bác .. help đi

mattroilanhh3
20-04-2011, 10:58
Sao mình ko down được nhỉ, tiếc wa' xa'... T_Tm