Trang

24/12/13

New PostProcessSceneNode

Làm lại SceneNode hiển thị hiệu ứng hậu kỳ



PostProcessSceneNode củ không thể dung được BackBuffer nên mình quyết định làm lại nó. Nhưng mình lại mất rất nhiều thời gian do một cái lổi ngớ ngẩn.
Mà cuối cùng mình phát hiện là không nên tin vào tham số mặc định của hàm ! (Vì nó không đúng yêu cầu của mình)
Chỉnhlại xong, bây giờ SceneNode của mình có thể thực hiện được hiệu ứng mình rất thích là MotionBlur, và rất nhiều hiệu ứng khác nữa.
Clip của mình cho các bạn xem các hiệu ứng dây chuyền gồm : MotionBlur, Invert, và Water
Mình cũng có thể bật và tắt hiệu ứng khi cần thiết (Cái này mới thêm vào thấy cũng rất hay)
Xem clip các bạn chú ý thanh tiêu đề nhé, mình đặt các thong tin trên đó.
Dự định tiếp theo là làm cho cái SceneNode này thành SceneNode that sự có thể lưu và nạp lại.
Kế tiếp mình sẽ tạo cái SceneNode render được hiệu ứng dây thừng trong Bullett (phần chat lieu vải trong Bullet)
Clip của mình :
    

22/10/13

Upgrade lakewater effect

Nâng cấp hiệu ứng nước hồ


Kết hợp với hiệu ứng biển của NVidia mình làm thêm sóng cho nước hồ (cái này có thể là cải tiến cái OceanEffect thì đúng hơn).
Thêm một cái nữa là mình thêm hiệu ứng (PostProcess) dưới nước. Khi di chuyển Camera đi qua mặt nước thì hiệu ứng dưới nước sẽ hiện ra, còn không thì bình thường).
Cơ bản làm như thế mình có thể tạm coi là đủ.
Mình cũng đang nâng cấp cái PostProcess SceneNode của mình cho nó hoàn thiện hơn và có thể chạy mọi hiệu ứng xử lý hậu kỳ.
Sau đây là clip của nó :

11/10/13

LakeWater Shader !

Hiệu ứng nước hồ


Tìm được hiệu ứng trên trang này : http://habib.wikidot.com/projected-grid-ocean có sourceDemo nhưng viết bằng C# và code Shader là file .fx thấy rất hay.
Mình quyết định chuyển code hiệu ứng mặt nước hồ sang Irrlicht.
Các bước như sau :
 + Chuyển .fx sang thành project trong RM
 + Chuyển sang Irrlicht, chỉnh lại tham số thích hợp cho nó hoạt động vừa ý.
Clip của nó :

6/10/13

NVidia SDK "OCean Shader" to Irrlicht

Chuyển hiệu ứng Ocean của NVidia SDK
sang Irrlicht


Chỉnh mấy hôm rồi cái hiệu ứng này mới có thể tạm chấp nhận được.
Như mình đã nói : cái Ocean shader này bản gốc trong tệp tin Ocean.fx của NVidia SDK , nó là một chương trình hoàn chỉnh. Nhưng có một số cái cần thay đôi khi chuyển sang dùng Irrlicht cho nó là :
- Nó dùng texCUBE để tạo ảnh phản chiếu (Irr không support cái này)
- Việc chuyển từ file .fx sang file hlsl (DirectX) trong Irrlicht không dễ một chút nào. Mình đã dùng FxComposer để xem nó như thế nào , dùng RenderMonkey để tách nó ra thành 02 phần VertexShader và Pixel Shader. Sau đó mới chuyển sang Irrlicht thành 01 file .hlsl.
- OCean Shader của NVidia chỉ hiện CubeBox tĩnh, còn của mình là EnvMap động nên cài đặt khác nhau hoàn toàn.
- Mình chỉ sữ dụng lại phần code tạo hiệu ứng sóng nước và tán xạ mặt nước thôi, còn hiệu ứng môi trường thì lấy từ ShaderDesigner !
Nhưng cuối cùng cũng có thể xem là xong.
Clip của nó đây :

5/10/13

Erosion shader (from RM (GLSL) to HLSL in Irrlicht

Chuyển hiệu ứng xói mòn từ RenderMokey (GLSL) sang Irrlicht (HLSL & GLSL)

Hiệu ứng này làm cho vật liệu bị cũ đi một cách rất hay và chân thực. Dùng hiệu ứng này trong Game thì sẽ tiếc kiệm rất nhiều công sức để tạo nhiều mô hình (các đồ vật cũ hay khác nhau một chút)
Trong RenderMonkey  chỉ có hiệu ứng này dạng GLSL shader chứ không có HLSL. Mình đã nâng cấp cái project đó của RM lên để có hiệu ứng này chạy trong HLSL.
Việc chuyển code shader này sang Irrlicht thì lại rất dễ. Vì mọi ví dụ từ RM đều chuyển sang Irr một cách dễ dàng.
Mình đang nghiên cứu chuyển các file .fx hay gfx sang thành project trên RM rồi sau đó chuyển nó sang Irr. Trước tiên mình bắt đầu bằng hiệu ứng mặt biển trong ví dụ của NVidia SDK .
Nhưng phải khắc phục thêm nhiều thứ như texCube chuyển thành tex2D, các phép toán ma trận, và hoán đổi toạ độ x,z....
Cũng mai là do mới làm xong hiệu ứng phản xạ môi trường nên phần phản xạ mình áp dụng ngay vô luôn (thay texCube bằng tex2D trong HLSL do Irr không support SamplerCube)
 

Sau đây là clip của hiệu ứng xói mòn :

28/9/13

Environment mapping and glass effect !

Hiệu ứng kính và phản xạ môi trường !
Mới down về cái ShaderDesigner dùng để thiết kế các hiệu ứng chạy trên OpenGL nhưng xét về khã năng thì nó còn thua xa RenderMonkey ! Nhưng nó lại có một số ví dụ mẫu mà mình thấy rất hay đó là hiệu ứng tạo chất liệu kính bán trong suốt và hiệu ứng phản xạ môi trường (không cần dùng mapping hình hộp nữa mà dùng dạng trãi phẵng). Két hợp nó trong Irrlicht thì rất tuyệt.
Việc chuyển đổi nó thành một ví dụ chạy Shader trong Irrlicht bằng OpenGL thì không khó, cái khó là mình phải chuyển code Shader sang chạy trên DirectX luôn mới phù hợp.
Mình dùng RenderMonkey chuyển từ từ nhưng cũng rất mất thời gian và khó khăn.
Sau khi có các project trong RenderMokey chạy cả OpenGL và DirectX thì việc cho nó sang chạy trong Irrlicht quá dễ đối  với mình.
Mất hết mấy ngày mới xong mấy cái này đó. Mình sẽ tìm xem coi ShaderDesigner còn cái ví dụ nào hay không sẽ chuyển nó sang DirectX.

Hiệu ứng kính bán trong suốt :

Hiệu ứng phản chiếu môi trường :


Hiệu ứng phản chiếu môi trường nâng cao (có bump thêm trên bề mặt chất liệu)  :

 
Clip của nó đây :
 
Hẹn gặp lại các bạn !!! 

22/9/13

Running Irrlicht in Eclipse and MinGW !

Chạy Irrlicht trong Eclipse và MinGW !


Mới chuyển sang lập trình bằng Android dùng Tera của NVDIA nhưng nó lại bắt mình dùng VS2010 pro trở lên !
Tức quá chuyển sang dùng Eclipse và MinGW xem sao ! Thấy cũng ổn và vì đây là FREE IDE nên chuyện bản quyền khỏi lo luôn chi cho mệt.
Mình làm theo hướng dẫn sau : http://irrlicht.sourceforge.net/forum/viewtopic.php?t=25355
Các bước cụ thể như sau ( mình dịch đơn giản thôi) :
1) Download và cài MinGW tại : http://sourceforge.net/projects/mingw/
2) Chú ý cài các biến môi trường cho đúng.
3) Cài Eclipse C++ for C/C++ deverlop : http://www.eclipse.org/downloads/
4) Download và cài Irrlicht (Cái này khỏi bàn thêm vì mình cài rồi)
5) Tạo một project dùng Irrlicht trong Eclipse : Cái này các bạn làm theo hường dẫn nghe ! Rất chính xác rồi.
6) Chép một file mẫu (mình dùng ví dụ 02 của Irrlicht luôn)
- Chú ý loại bỏ dòng #pragma comment(lib, "Irrlicht.lib") (dánh dấu "//" chú thích cho nó là xong)
7) Chọn Project -> Build project
8) Trước khi Run làm thêm cái này đây !
- Vào thư mục cài MinGW chép 02 file : libgcc_s_dw2-1.dll và libstdc++-6.dll vào cùng thư mục (Debug hay Release tùy mình đang chạy)
- Chọn Run -> Run
- Thưởng thức thành quả ! Vậy là xong !
* Phiên bản 1.8 chỉ chạy OpenGL thôi ! Mình đang nghiên cứu cách dịch lại Irrlicht bằng Eclipse để chạy DirectX và cả OpenGL luôn !
* Mình cũng vừa biên dịch các ví dụ của NDK sang chạy bằng Eclipse :



 

4/9/13

Upgrade character control

Nâng cấp phần điều khiển nhân vật (phần 1)

 
Mình quyết định bắt tay vô chuẩn bị làm game ! Vậy là trước tiên phải cải tiến phần điều khiển nhân vật trước coi sao cho được cái đã.
Phần điều khiển nhân vật lúc trước đi rất hay va chạm tường, không thể đánh hay nhảy. Bi giờ mình đã nâng cấp nó lên rồi thấy cũng đẹp chán. và do tích hợp với Bullet engine nên phần vật lý tương tác cũng tạm chấp nhận được.
Nhưng còn nhiều thứ phải làm nữa là cho nhân vật trèo tường hay trèo dây, bơi và đánh sau cho thật đẹp nữa.
Mình sẽ tiếp tục nâng cấp lên sau !
Clip của nó đây :
 


20/8/13

Fixed BOOTMGR is compressed. CTRL + ALT + DELETE to restart

Khắc phục lổi bị nén BOOTMGR
Cái này là do mình thôi, để tiết kiệm không gian lưu trữ mình đã nén luôn cái ổ C (chứa hệ điều hành Win7 đang chạy).

 Kết quả là mới vô máy báo " BOOTMGR is compressed. CTRL + ALT + DELETE to restart" cứ như vậy và không có cách nào vào được Window.
Tìm hiểu trên mạng và mình thấy có một cách khắc phục hay nhất là dùng bộ cài Win7 bằng UBS như sau.
Bạn làm như hướn dẫn sau để có thể tạo Usb bootable hé :
http://forum.bkav.com.vn/showthread.php?17979-USB-BOOT-Cai-dat-Win7-bang-2-phan-mem-Windows-7-USB-DVD-Download-Tool-va-WinToFlash
Sau đó khi có Usb boot được thì trở lại máy tính đang bị BOOTMRG compressed làm như sau :
- Chỉnh CMOS để có thể nhận được USB boot cái đã (máy mình phải chọn Usb boot first) lưu lại, khởi động lại, cắm cái USB boot win7 vào
- Chọn repair nhé các bạn
- Nhấn nút Select Driver. Hi đến lúc này thì mình có thể truy cập cái MyComputer rồi, chọn ngay cái ổ C (chứa hệ điều hành mà mình lở checked cái compressed cho nó) , properties, bấm bỏ chọn cái check chết tiệt đó, Apply, chờ một lúc xong, OK.
- Tắt hết các cửa sổ hiện có (nhấn nút X trên cùng bên phải) để thoát trình cài đặt Win7.
- Rút cái USB ra, khởi động lại máy....
- Chờ.... chờ .... màn hình Win7 củ sẽ hiện ra thôi.
- Chỉ như vậy nhưng mình mất hết cả ngày trời (do nghiên cứu tạo USB tự khởi động chạy Win7)
* Hy vọng điều này giúp ít cho các bạn.
* Còn một cách khác là tháo cái ổ HDD ra, đem sang máy khác gắn vào cho nhận thêm, sau đó bỏ dấu checked đúng ngay cái phân vùng mình cần là xong. Nếu bạn nào có USB ổ cứng di động thì làm điều này thật tuyệt vời !

16/8/13

Auto convert animated Mesh to RagDoll

Tự  động chuyển Mesh hoạt cảnh sang
tư thế chết (RagDoll)


Mất chắc gần hơn 2 tháng mình mới có thể hoàn thành được cái này. Đây không phải là ví dụ chuyển từ Bullet sang Irrlicht mà do nhu cầu thực thế khi làm game.
2 tháng trước mình chỉ làm được hoạt cảnh tư thế chết cho chú mèo, còn bi giờ thì có thể nói là tất cả các Mesh có khung xương trong Irrlicht mình đều có thể chuyển nó sang RagDoll.
Vì sao mình mất nhiều thời gian thế này ? Cái này là do mình chưa nắm vững lắm cấu trúc SkinMesh của Irrlicht và các Constraint của Bullet. Mình phải đọc lại chúng thật kỷ. Cái này dính đến phần GLOBAL_SKIN của SkinedMesh và cách đặt các giá trị ban đầu cho nó khi áp giá trị toàn cục vào.
Cái thứ hai là các Constraint của Bullet sẽ có cách hành động rất kỳ lạ khi bạn gắn nó sai tham số số. Và cái quan trọng là phải đặt tham số Render lại cho riêng AnimatedMesh của Irrlicht khi tích hợp nó với Bullet ( phải reset lại Node của Bullet về giá trị ban đầu, loại bỏ góc quay....)
Nói chung là rất mệt, nhiều lúc chán quá muốn bỏ cái phần này đi nhưng cuối cùng mình cũng thành công.
 Sau đây là clip của nó, tuy chưa vừa ý lắm và cần cải tiến thêm nhưng tư thế RagDoll như thế cũng tạm ổn :

Sau ví dụ này mình sẽ nghiên cứu tiếp phần phá hủy trong thời gian thực (realtime shatter)

8/8/13

Mini game ! CheckerChess !

Cờ Đam (CheckerChess)
Cùng cu tý ở nhà xem phim Boboiboy, đến đoạn chơi cờ Đam thấy hay quá mình quyết định làm một Mini game cờ Đam xem sao.
Mất 02 ngày để làm ra trò chơi này (thực ra chỉ chừng vài giờ thôi do mình có source các chương trình cờ khác, nhưng cái này là hoàn toàn 2D chứ không phải 3D).

Cách chơi :
 
Khi bắt đầu chơi thì 2 bên quân trắng và quân đen sắp thành 3 hàng ở mỗi bên (chỉ sắp ở ô đen thôi), khi đi mỗi quân chỉ được tiến 1 ô cũng chỉ trên ô đen thôi, và chỉ tiên về phía trước thôi ,khi ăn thi khi 2 quân đen và quân trắng đối diện nhau nếu có ô trống ở phía sau thì quân đang đi được ăn, khi quân trắng hoặc quân đen tiến tới hàng cuối của bên đối diện thì trở thành hậu có thể quay ngược lại được, khi một bên ăn hết quân của bên kia thì sẽ thắng.
 
Trong game của mình các bạn chọn độ sâu cho máy tính trước, bên xanh, bên đỏ và số ván đấu với nhau. Nhấn Đồng ý là xong. Trong lúc chơi bạn nhấn ESC để hiện lại menu và có thể chỉnh lại các tham số nếu thích (như tăng thêm độ sâu tính toán cho máy chẳn hạn)
 
Mình đã nén lại thành 01 file .zip duy nhất (thư mục nén) các bạn cứu down về giải nén và chạy tập tin CheckerChess.exe là bắt đầu chơi được rồi !
 
Chúc các bạn cuối tuần thư giản vui vẻ !
 
 
Sau này nếu có điều kiện mình sẽ đưa nó sang Android !

31/7/13

Using Ehternet and RS232 in Android Tablet

Dùng mạng LAN (có dây) và cổng RS232
bằng máy tính bảng Android

Thường hay đi lắp kênh cho khách hàng thường dùng cổng Elthernet để cấu hình cũng như kiểm thử kênh truyền cho khách hàng. Mình nghĩ có cách nào dùng cái máy tính bảng chạy Android cho nó nhẹ nhàng hơn khi phải luôn mang theo một cái PC nặng ỳ.
Vậy là mình quyết định tìm mua cộng dây chuyển này (chú ý nó có biểu tượng Andoid bên dưới nhé)

 
Dùng dây OTG (miniUSB) chuyển sang USB (kèm theo máy) sau đó nối vào cộng dây này và kết nối vào mạng LAN ( đầu RJ45) vậy là xong phần kết nối vật lý.
Cái thứ hai mình cần là cái máy tính bảng của mình cũng có thể nhận cổng Ethernet
(Mình chụp hình bằng Nút nguồn và nút Volume Down trên máy tính bảng)
 

Sau khi cài đúng thì các bạn chú ý có biểu tượng kết nối mạng (hình 2 cái máy tính thu nhỏ) bên dưới cái máy tính bảng của mình (mình đã tắt Wireless, không dùng 3G luôn) .
Các bạn chú ý mình dùng các phần mềm bên dưới hé (Ping, Telnet, SSH, Termial... nhiều lắm)

 
Do mình kết nối với mạng LAN nên phải xem có truy cập Internet được không ? ( cái này kiểm tra kết nối Internet thôi, mình cũng có thể Ping để kiểm tra)
 
 
 
Mình đã Test thử phần dùng Ethernet không có gì phải bàn cải, trên cả tuyệt vời !
 
Kế tiếp là dùng cổng COM /Mình dùng dây chuyển này :

 Đầu cáp OTG ra USB nối với dây chuyển này sau đó đấu vào Modem để cấu hình.
Mình đã Test thành công với Router Cisco 878. Nhưng còn cái khó là đánh lệnh quá khó. Phần mền Terminal không tương thích 100% như trên PC nên gặp một chút khó khăn.
Nhưng như thế này thì đã có thể dùng cái Tablet của mình đi lắp kênh cho khách hàng tốt rồi !
Và nếu dùng cái máy tính bảng này mình cũng có thể vô mạng có dây như bất kỳ cái PC nào khác (không cần phải dùng đến Wireless Network)

14/6/13

AutoRagDoll

Tự động tạo tư thế RagDoll cho Mesh có khung xương

 
Sau khi nghiên cứu gần hết các ví dụ của Bullet mình thấy nên tạo thêm cái này để bổ sung thêm cho Irrlicht đầy đủ hơn !
Không phải mesh nào có hoạt cảnh đều có hoạt cảnh chết đâu ! Ví dụ như hoạt cảnh chú mèo này chỉ có đi và đứng.
Sau khi áp cái hiệu ứng vật lý này vào thì chú mèo đã có hoạt cảnh chết rồi ! Không cần làm thêm hoạt cảnh chết, mà chưa chắc đã làm được !!!

Nhưng ! Hiện tại mình chỉ làm được hoạt cảnh này cho mô hình chú mèo này và một số mô hình khác nhưng không hiểu sao không áp dụng cho được tất cả các mesh có khung xương.

Mình sẽ có gắng nâng cấp chương trình này sau, cố sao cho có thể áp dụng cho toàn bộ các mesh có khung xương ! Hy vọng thành công !
Sau đây là clip của nó :

29/5/13

VoronoiFractureDemo

Hiệu ứng phá hủy trong Bullet (VoronoiFractureDemo)

Vừa xong mấy hiệu ứng cho chất liệu mềm, mình phát hiện ra vẫn còn một ví dụ trong Bullet rất hay mà suýt mình bỏ qua. Đó là hiệu ứng phá hủy trong Bullet.
Trong các ví dụ của Bullet có 2 hiệu ứng phá hủy nhưng cái VoronoiFractureDemo là cái hay nhất. Vì hiệu ứng phá hủy giống thật hơn nhiều, còn cái kia giống như là tách liên kết (mặc dù thực tế cả hai đều là vậy)
Mình đang định nâng cấp cái VoronoiFractureDemo này theo hướng giống như các Demo người ta thực hiện trên YouTube nhưng hiện thời mình chỉ có thể làm được đến mức này trước đã.
Clip của nó đây :
 
Hẹn gặp lại các bạn trong bài viết sau !   
 
 



21/5/13

SoftDemo (30 -31 )

Hai demo cuối cùng của SoftDemo (Init_TetraCube, Init_TetraBunny)


Nhìn bề ngoài thì 02 ví dụ cuối này rất đơn giản, không có gì đặc biệt, nhưng mình mât rất nhiều thời gian để có thể hiển thị cái tetraMesh trong Bullet sang Irrlicht.
Để tạo thành tetraMesh như thế này trong ví dụ 30,31 thì nó nạp sẳn. Bullet không biết có tạo tự động được nó không, nhưng hình như có người đã làm được.
Làm đến ví dụ này mình mới nhớ còn vài ví dụ nữa mà mình phải làm :
- Hiệu ứng phá hủy trong Buulet thông qua Demo : VoronoiFractureDemo
- Một ví dụ mình phải làm là nghiên cứu các khớp nối trong Bullet một cách chính xác.
- Tự tạo tư thế RagDoll cho mô hình có sẳn khung xương.
- Hoàn thiện các class để chuyển từ Bullet sang Irrlicht.
Sau đây là clip của nó :

18/5/13

SoftDemo (23-29)

SoftDemo (23-29) Init_ClusterSocket,

Init_ClusterHinge, Init_ClusterCombine, Init_ClusterCar, Init_ClusterRobot, Init_ClusterStackSoft, Init_ClusterStackMixed
Thật ra mấy cái ví dụ này mình cũng đã hoàn thành rồi,nhưng phải đọc lại cho hiểu mới được.
Init_ClusterSocket :  hiệu ứng khớp nối mềm giữa hình xuyến và một khối chữ nhật cố định, các vật thể có thể xoay mọi hướng,nhưng khoảng cách khôg đổ_ClusterHinge : :hình xuyến và khối chữ nhật kết nối với nhau bằng khớp nối trục, hai vật thể có thể xoay theo trục và khoảng cách chúng có thể thay đổi
Init_ClusterCombine : kết hợp 2 cái trên, giống như trục của bánh xe
Init_ClusterCar : là một chiếc xe thật sự
Init_ClusterRobot : là một robot có khã năng di chuyển bằng các chân hình cầu di chuyển được mọi hướng 
Init_ClusterStackSoft : tạo ngăn xếp các hình xuyến mềm xếp chồng lên nhau
Init_ClusterStackMixed : tạo ngăn xếp xen kẻ giữa hình xuyền mềm và khối hộp cứng
Sau đây là clip của nó :
 

11/5/13

SoftDemo (14-22)

SoftDemo (14-22)
(Init_Friction, Init_Torus, Init_TorusMatch, Init_Bunny, Init_BunnyMatch, Init_Cutting1, Init_ClusterDeform, Init_ClusterCollide1, Init_ClusterCollide2)



Mới hoàn thành việc phân tích các ví dụ trongSoftDemo từ 14-22 :
Init_Friction : Tạo một dãy các hộp mềm,sau đó tác động vào chúng cùng một tốc độ, tuy nhiên khác nhau là các hộp có độ ma sát khác nhau.
Init_Torus : nạp một hình xuyến mềm và áp dụng phép cắt cho nó.
Init_TorusMatch : nạp một hình xuyến mềm và áp dụng phép di chuyển cho nó.
Init_Bunny : nạp hình một chú thỏ, áp phép cắt
Init_BunnyMatch :nạp hình một chú thỏ,định hình ban đầu và di chuyển bằng mouse.
Init_Cutting1 : nạp một lưới vuông, treo 4 góc và cho phép cắt
Init_ClusterDeform : nạp một hình xuyến, cho phép biến dạng theo nhóm
Init_ClusterCollide1: Tương tự như ví dụ 1 nhưng khác là áp tham số cho nhóm
Init_ClusterCollide2 : nạp 3 hình xuyến xuyên nhau như dây xích, và cũng tác dụng theo nhóm đường nối.
Clip của nó đây :
 

Mình cũng vừa xem xong các ví dụ còn lạ, nhưng chưa kịp đưa clip lên, thôi để bài viết sau vậy.
 

7/5/13

Irrlicht Mesh to SoftBody

Chuyển Mesh từ Irrlicht sang Bullet


Mình đã thực hiện chuyển thành công các Mesh trong Irrlicht thành SoftBody được.
Mình thực hiện việc này là do hạn chế về việc nạp file trong Bullet (do Bullet hỗ trợ ít file 3D hơn Irrlicht).
Với thành công này thì mình có thể ápSoftBody cho bất cứ SceneNode (MeshSceneNode thôi) nàomà mình muốn nó trở thành SoftBody. Có thể treo nó vào đâu tùy ý hay là cho tác động vật lý tự do cũng được.
Vậy là với Bullet được render bằng Irrlicht, mình có thể  Covert bất cứ SceneNode nào thành đối tượng rắn (Rigid body) hay  đối tượng mềm (Soft Body) mà mình muốn.
Để nghiên cứu hết các ví dụ của SoftDemo xong thì mình sẽ bắt tay làm các Class hỗ trợ cho việc render bullet một cách hoàn chỉnh. Sau đó bắt tay làm game có hiệu ứng vật lý được rồi.
Clip : (clip được ghép từ  2 phần : phần đầu nạp mô hình Ninja chuyển nó thành SoftBody, phần 2 nạp một Hill Plane từ Irrlicht thành 10 bản và treo nó với 2 góc và áp hiệu ứng gió cho nó)


Hẹn gặp lại các bạn trong bài viết sau.

3/5/13

SoftDemo (12,13) ( Init_Aero, Init_Aero2)

SoftDemo ( Init_Aero, Init_Aero2) ( Chuyển động khí động học phần 1 và 2)
 
Init_Aero : Tạo hiệu ứng như là các mảnh giấy rơi . Mình xem mấy hiệu ứng này rất thích


Init_Aero2 :  Hiệu ứng 5 lá cờ bay trong gió, cái này thì chuyên nghiệp hơn là giả lập rồi.


Clip :

1/5/13

SoftDemo (6,7,8,9,10,11)

SoftDemo (Init_Sticks,  Init_CapsuleCollision, Init_Collide, Init_Collide2, Init_Collide3, Init_Impact)
Mình vừa hoàn thành một clip tổng hợp cho 6 Demo nhỏ của SoftDemo bao gồm các hiệu ứng sau :
Init_Sticks : Tạo một dãy các cây nhỏ và cho một quả cầu lớn rơi trên đó xem hiệu ứng thế nào
Init_CapsuleCollision : Phủ một vật thể mềm lên một cứng khối hình viên thuốc
Init_Collide : Tạo hiệu ứng 3 khối hình xuyến mềm xâu với nhau
Init_Collide2 :Tạo hiệu ứng 3 con thỏ mềm rơi chồng lên nhau
Init_Collide3 :Hiệu ứng 2 mảnh vải rơi chồng lên nhau
Init_Impact : Hiệu ứng khối h65p rơi trên que mềm ngắn.
Sau đây là clip của nó :


Mình vừa nâng cấp lên phần render cho vật thể mềm nhanh hơn một chút (bằng cách cập nhật Normal vector trực tiếp từ Node của SoftBody chứ không dùng Irrlicht để tính Normal vector nữa)

À : Sáng kiến mới của mình đây "Bơm nước từ giếng khoan lên bằng xe đạp) (học từ người khác thôi) đó là bơm nước dùng sức người để đạp xe. Mà mình cũng mài mò trên Youtube thấy hay lên làm theo. Chủ yếu là tập thể dục cho khoẻ đó mà.
- Vật liệu : ra chợ trời mua một cái đầu bơm có buly sẳn loại nhỏ thôi chứ nếu không thì không tể đạp nổi đâu.
- Thứ hai : Mua miếng ván vừa đặt chiếc xe đạp(xe có chống giữa) và gắn cái đầu bơm vô tấm ván, buly tiếp xúc với bánh xe sau.
- Nối ống vào ra cho đúng.
- Mồi nước.
- Ra sức trâu mà  đạp và thưởng thức thành quả. Mình Test rồi thấy cũng OK . Chắc sức mình bằng sức ngựa :)) .
Mình sẽ nhờ bà xã quay clip mình đạp cái xe này cho bà con xem nếu có thể nhân rộng mô hình mà tập thể dục :))
 

28/4/13

SoftDemo 3+4+5 (Init_Ropes,Init_RopeAttach,Init_ClothAttach)

Demo thứ 3,4,5 của SoftDemo (Init_Ropes,Init_RopeAttach,Init_ClothAttach)
 
Mình vừa hoàn thành thêm 01 clip tổng hợp cả ba Demo nhỏ nàybao gồm :
Init_Ropes : khởi tạo 15 sợi dây nhỏ được treo hai đầu
Init_RopeAttach : Treo một đối tượng bằng 2 sợi dây nhỏ và xem tương tác của nó
Init_ClothAttach : Treo một đối tượng rắn bằng một mảnh vải
Clip của nó :

Mình vừa hoàn thành xong việc chuyển SceneNode của Irrlicht thành một SoftBody hoàn chỉnh. Mình sẽ gởi clip của nó lên sau.
À vừa này mình chắc còn phải làm thêm SceneNode dùng đẻ hiển thị dây treo của Bullet trong Irrlicht mới được.

22/4/13

SoftDemo 02 + 03 (Int pressure + Init_Volume)

Demo thứ hai và ba của Softdemo
Hôm nay mình gởi thêm 02 clip nữa minh hoạ Demo thứ 2 và thứ 3 của SoftDemo trong Bullet . Được mình dùng Irrlicht để Render.  Cấu trúc 02 Demo này hoàn toàn giống nhau, chỉ khác là tham số dùng để khởi tạo chất liệu mềm mà thôi.
Init Pressure :

Init Volume :
Hẹn gặp lại các bạn ở những Demo tiếp theo.
À mình cũng vừa hoàn thành thủ tục localCreateRigidBody (chuyển từ Bullet sang) để tạo đối tượng vật liệu rắn nhanh nhất.

20/4/13

First SoftDemo (Init_Clocth)

Demo thứ nhất của SoftBody (Init_Cloth)
Demo này khởi tạo một lưới kích thước 8x8 có 32x32 ô nhỏ là vật liệu mềm
Và  khởi tạo thêm một chồng các  vật liệu cứng rơi trên nó.
Mình đã thêm vào 2 chế độ là render trực tiếp từ dữ liệu của SoftBody và thứ 2 là dùng SceneNode để hiển thị SoftBody (cách sau thì cho tốc độ khung hình nhanh hơn thấy rỏ)
Sau đây là Clip ban đầu :

Clip nâng cấp :

Phải từ từ nghiên cứu hết các ví dụ nhỏ của SoftDemo thôi !
Sau đó mình sẽ bắt tay làm game !

16/4/13

Some ScreenShot of SoftBody Demo (from Bullet to Irrlicht)

 Một số hình ảnh của SoftBody Demo !
 
 Mất hết mấy tuần mình mới làm được phần này ! Phải nói là cực kỳ khó.
Hiện giờ mình chỉ render softbody một cách thủ công nên tốc độ khung hình rất chậm (chừng 40 fps hay nhanh hơn chút ít mà thôi). Mình sẽ cải tiến lại sau.
 
Sau đây là một số (gần như toàn bộ các ScreenShot) của SoftDemo đây :
 
 
Như các bạn thấy có hơn 30 Demo nhỏ của từng phần trong SoftDemo (nhưng Bullet đã tích hợp rất
hay nên khi chuyển mình chỉ làm 1 lần là hết).
Mình sẽ đưa từ từ từng clip của từng Demo lên sau vì nó rất nhiều ! Gom lại một clip thì quá lớn)
Vậy là mình đã cơ bản hoàn thành việc tích hợp Bullet engine vào trong Irrlicht rồi (lên level nữa rồi)
Nân cấp việc render softbody lên thành sceneNode thực sự là xong - vậy là bắt tay làm game có hiệu ứng vật lý được rồi.


Bài đăng phổ biến