Irrlicht - một engine đồ họa khá tốt và dễ học, dễ sử dụng, nên mình thường khuyến khích các lập trình viên sử dụng nó để nhập môn lập trình đồ họa / lập trình game.
Irrlicht là gì?
Irrlicht là một 3D engine được viết bằng C++, đa nền tảng và hiệu quả cao. Nó cung cấp API (Application Programming Interface) để tạo ra các chương trình 3D và 2D như là games hoặc là các mô phỏng cho khoa học. Irrlicht cung cấp tài liệu rất chi tiết và tích hợp các tính năng mới về hình ảnh, bao gồm: Dynamic Shadows, Particle Systems, Character Animation (cử động nhân vật), Indoor và Outdoor (các hiệu ứng đi kèm để phù hợp cho môi trường trong (nhà, phòng, hang động,….) và môi trường ngoài trời, Collision Detection (kiểm tra va chạm giữa các vật thể). Tất cả những điều này có thể được sử dụng thông qua một API được thiết kế tốt, dễ dàng sử dụng. Irrlicht hoàn toàn miễn phí và mã nguồn mở.
Một số đặc điểm nổi bật:
– Render 3D thời gian thực sử dụng Direct3D và OpenGL với hiệu quả cao.
– Không phụ thuộc nền tảng: chạy trên Windows, Linux, Mac OS X, iOS, Android…
– Thư viện vật liệu (material) có sẵn đa dạng, hỗ trợ vertex, pixel shader.
– Dễ dàng kết hợp khung cảnh ngoài trời và trong nhà qua hệ quản lý scene tùy biến cao.
– Cử động nhân vật với khung xương hoặc morph target (Skeletal Animations và Mesh animations).
– Particle effects, billboards, light maps, environment mapping, stencil buffer shadows, và các hiệu ứng khác…
– Có thêm một số thư viện gắn kết cho các ngôn ngữ khác sử dụng: C#, VB, Delphi, Java,…
– Có thêm 2 software renderer (chạy hoàn toàn trên CPU) để thích hợp mọi nền tảng.
– Hệ thống giao diện 2D: Buttons, List (dropdown), Edit box (text),….
– Các chức năng đồ họa 2D như: alpha blending (alpha compositing – xếp chồng các ảnh dựa theo thuộc tính alpha của các pixel vào thành một), color key (chọn một color nào làm key thì lúc render tất cả các pixel có màu đó sẽ thành trong suốt, nó cũng chính là chroma key để tách phông xanh ra khỏi video ứng dụng trong điện ảnh), hiển thị Font, và các chức năng kết hợp giữa 3D và 2D.
– Thư viện tài liệu dễ tra cứu cùng nhiều ví dụ minh họa.
– Viết bằng C++ thuần túy và hoàn toàn hướng đối tượng.
– Hỗ trợ các định dạng đồ họa: Maya (.obj), 3DStudio (.3ds), COLLADA (.dae), Blitz3D (.b3d), Milkshape (.ms3d), Quake 3 levels (.bsp), Quake2 models (.md2), Microsoft DirectX (.X),….
– Đọc được các file texture: Windows Bitmap (.bmp), Portable Network Graphics (.png), Adobe Photoshop (.psd), JPEG File Interchange Format (.jpg), Truevision Targa (.tga), ZSoft Painbrush (.pcx) ,…
– Kiểm tra va chạm các vật thể nhanh và dễ sử dụng.
– Các phép toán 3D thông dụng cùng với template library cho container (Irrlicht tự viết container riêng chứ không sử dụng vector, list,….từ C++ STL).
– Đọc từ các định dạng file nén: (.zip, .pak, .pk3, .npk)
– Có sẵn XML parser.
– Hỗ trợ Unicode (để hiển thị cho các ngôn ngữ như tiếng Việt,….)