Trang

Hiển thị các bài đăng có nhãn Shader trong Irrlicht. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Shader trong Irrlicht. Hiển thị tất cả bài đăng

25/12/12

Ứng dụng Shader vào trong Irrlicht

(chuyển code từ RenderMonkey)


Đang học shader để viết hiệu ứng trong Irrlicht.Mình nghĩ cũng nên share một ví dụ cho các bạn cùng nghiên cứu.

Ví dụ của mình là hiện Phongshading trong Irrlicht (dù Irr có hỗ trợ GouraudShading rồi, nhưng Phongshading thì chắc chắc đẹp hơn rồi)

Sau đây là source của nó :

http://www.mediafire.com/?184hkrur7nmzp01

Hiện tại mình đã hoàn thành một sceneNode mới tên là PostProcessingSceneNode dùng để xử lý các hiệu ứng hậu kỳ cuối cùng (bloom, blur, Depth of field,..) nhưng chỉ mới phần cơ bản còn phần nền thì còn thiếu nhiều hiệu ứng lắm. Nhưng SceneNode này có thể dùng multipass (nhiều hiệu ứng lồng ghép nhau - rất hay)
Xử lý hậu kỳ ! (Shader)




(Invert và SinWave effect)

- Mấy tuần rồi mình tập trung nghiên cứu chuyển Code Shader từ RenderMonkey sang dùng cho Irrlicht.

- Bây giờ mình đang nghiên cứu đến giai đoạn PostProcessing(xử lý Shader hậu kỳ- sau đó là Render cuối cùng.) vì rất nhiều Code Shader phải dùng đến nó mới đạt hiệu quả cao nhất !

- Thật ra mình chỉ nghiên cứu PostProcessing chỉ cần đến giai đoạn xử lý ảnh xuất cuối cùng mà thôi ! Các phần khác để sau này nghiên cứu tiếp. Dĩ nhiên là code thể dùng MultiPass để xử lý ảnh để cho kết quả tốt nhất.

- Mình đi theo hướng là PostProcessing dùng như một SceneNode con của Irrlicht. Như vậy thì khỏi lo chuyện nạp và lưu. Cái này thì khác xa với các CodeSniped về PostProcess trên diễn đàn.

- He he ! Bây giờ mình đã lên Level rồi !

- Hẹn gặp lại các bạn trong bài viết sau !
Mô phỗng thí nghiệm hóa học




Mình làm đơn giản thôi

Nhưng cũng nghiên cứu được thêm nhiều cái rất hay. Đó là mình có thể chuyển code shader từ RenderMonkey qua Irrlicht (nhưng không vừa ý lắm do Irrlicht không có hỗ trợ CubeMaping)

Sau đây là Clip của nó :


Bắt đầu làm quen với Shader !




Chúc mừng năm mới !

Chào các bạn ! Đợt tết này các bạn vui chứ ! Nghỉ tết mình chỉ làm được một chút xíu thôi !

Hiện mình đang nghiên cứu làm hiệu ứng (shader) cho các mô hình của mình.

Bắt đầu thì mình nghiên cứu cái RenderMonkey của ATI. Sau đó cố gắng chuyển các Shader đó sang Irrlicht - Bước đầu mình cũng hơi khó khăn,nhưng cuối cùng mình cũng thành công tuy chưa được như ý nhưng cũng chấp nhận được.

Hiện giờ mình đang làm một số hiệu ứng phục vụ Demo mới nhất của mình đó là : hiệu ứng thủy tinh, hiệu ứng đổi màu chất liệu theo thời gian, hiệu ứng chất lỏng (cái này khó nhất) và hiệu ứng ánh sánh dạng volume.

Xong phần này mình sẽ quay lại hoàn thiện class sinh cây tự động của mình để cho nó thật hơn.

Hẹn gặp lại các bạn trong bài viết sau !
Dựng hình nổi 3D (Stereo render)




Nghe các bạn trên diễn đàn Irrlicht nói cái phần render này rất hay !

Mình thử một project mới và áp nó vào thì thấy lạ lạ !

Lập tức đi mua ngay cái kính 3D về xem ! Công nhận khác xa ! Rỏ ràng giống như mình xem tranh nổi vậy ! Tuyệt thật !

Vậy là mình có thể tích hợp phần này vào phần lựa chọn render cho các chương trình và game kế tiếp của mình rồi !

Hẹn gặp lại các bạn !
Sơn ảnh chi tiết và hiệu chỉnh mesh dành cho địa hình






Như đã hứa ! Hiện mình đã hòan thành gần 100% cho cái tool này !

Công dụng của tool này như sau :

- Dùng nó để nạp ảnh map địa hình mà bạn có sẳn ( Nếu có điều kiện mình sẽ nâng cấp lên thành việc sinh ảnh HeightMap ngay trong tool này luôn)

- Tự sinh ảnh AlphaMap (hay có thể nạp cái AlphaMap mà bạn đang có) và thực hiện các công việc hiệu chỉnh mà bạn thích. Bạn có thể sơn các chi tiết của địa hình (giới hạn 7 ảnh map) theo yêu cầu của mình.

- Bạn có thể hiệu chỉnh độ cao của Mesh trên Terrain ngay trong tool này ! (Mình dự định có thêm một số hàm dành riêng cho công việc này như làm phẳng nhiều đỉnh). Hiện tại mình chỉ mới thực hiện việc hiệu chỉnh trên từng đỉnh riêng lẻ. Chiều nay sẽ làm đến phần làm việc trên nhiều đỉnh (thuộc một vùng vuông = kích thước bút vẽ).

- Sau khi hòan tất bạn chỉ việc lưu lại công việc của mình (nhớ đó - coi chừng làm mà không có gì hết). Vậy là xong.

- Vậy là cũng gần xong cái tool này rồi ! Có thể bắt tay làm thêm các phần khác.
Ảnh map chi tiết địa hình (7 ảnh lát)




Mình mới nâng cấp phiên bản của ảnh map chi tiết địa hình (dùng DirectX) từ 3 texture chi tiết lên thành 7 (thêm với AlphaMap nữa là 8 đó là giới hạn của Irrlicht engine - phải dịch lại).

Hình trên là kết quả của ảnh map chi tiết địa hình với 6 ảnh (còn cái 7 ảnh mình sẽ Up sau, nó có thêm cái ảnh chi tiết nham thạch trong địa hình)







Mình cũng dựa vào địa hình mà sinh ra ảnh AlphaMap cho chương trình, sau đó thì phải vẽ thêm đường đi và ảnh nham thạch vào nữa trong chương trình biên sọan hình ảnh riêng.

Các bạn xem ảnh AlphaMap mình sinh ra và có thêm biên tập vẽ đường đi và nham thạch vô




Các bạn chắc đã đóan ra mình dùng ảnh map chi tiết dựa theo màu của AlphaMap như thế nào rồi chứ :

+ 100% đỏ là tuyết (snow)
+ 20% đỏ là đá (stone)
+ 100% dương là cỏ (grass)
+ 20% dương là đất (dirt)
+ 20% lục là cát (sand)
+ 50% đỏ và 50% lục là đường (path)
+ 100% lục và 100% dương là nham thạch (lava)

Có vẽ là mình bố trí màu sắc không hay lắm ! Chỉnh lại thì rất dễ mà.

Mình định làm luôn việc vẽ ảnh Map đường và nham thạch ngay trong chương trình (làm một chương trình riêng) để việc vẽ được chính xác hơn.

Sau cái này mình sẽ cải tiến tiếp cái chương trình quản lý cỏ (grass manager) và áp dụng nó vô địa hình. He he lúc đó thì địa hình của mình cũng tương đối đẹp rồi, nếu thêm các cây lớn vô + một chút gió nữa thì chắc OK.

Rồi sau đó là mặt nước với chi tiết đầy đủ.

Ôi tham vọng quá ! từ từ làm thôi !

Các bạn có thể download cái code dùng 3 texture chi tiết của mình :

Bài đăng phổ biến