Các đối tượng chính:
- Mesh: cấu trúc của vật thể 3D
- Material: vật liệu, ảnh hưởng tới hiển thị bề mặt của vật thể đó
- Texture: hình ảnh sử dụng trong tính toán vật liệu (PNG, JPG, ...)
Trình tự khi lập trình đồ họa căn bản với Irrlicht:
- Khởi tạo Irrlicht
- Đọc mesh và texture từ các file đồ họa
- Tạo ra một Scene Node từ mesh và texture
- Cài đặt Material cho Scene Node đó
- Cài đặt camera
- Hiển thị cảnh 3D
Một số loại mesh:
- IMesh: mesh tĩnh
- IAnimatedMesh: mesh chứa các chuyển động
Các Scene Node phổ biến:
– ICameraSceneNode: Camera trong 3D world, thường thì chỉ có 1 camera chính dành cho người dùng quan sát 3D world, về sau sẽ có thể sử dụng thêm nhiều camera, ví dụ: Game đua xe 2 người chơi, mỗi người nhìn một nửa màn hình thì sẽ phải có 2 camera, ngoài ra những hình ảnh như nhìn qua gương của xe, nhìn ra phía sau xe, … cũng cần nhiều hơn 1 camera.
– ICameraSceneNodeFPS: thừa kế từ ICameraSceneNode, loại camera này có thể điều khiển như trong các game FPS, ngoài ra còn có ICameraSceneNodeMaya, điều khiển giống trong phần mềm đồ họa Maya.
– IMeshSceneNode: phải được tạo ra từ IMesh, scene node này có thể hiển thị đồ họa load từ các file 3D mà Irrlicht hỗ trợ, hoặc bạn cũng có thể tự xây dựng mesh của bạn rồi tạo scene node để hiển thị mesh đó. Nguyên lý là load mesh từ file trước hoặc tự code một loại mesh riêng sau đó mới khởi tạo IMeshSceneNode.
– IAnimatedMeshSceneNode: khác với scene node ở trên là chỉ tĩnh chứ không cử động, scene node này có thể chạy animation load từ các file đồ họa, tương tự vẫn là tạo mesh trước (trường hợp này là IAnimatedMesh) rồi tạo scene node.
Các namespace của Irrlicht:
– namespace irr: namespace chính
– namespace scene: chứa những thứ liên quan đến scene, vd như các loại mesh, scene node, camera….
– namespace video: những thứ về hình ảnh nói chung, ví dụ: texture, material,…và các settings về hiển thị
– namespace io: về nhập xuất, read write file, XML reader…
– namespace gui: giao diện 2D: text, font,….
– namespace core: trong này là những kiểu dữ liệu và container, ví dụ: vector3df (f là float), vector3di (integer), vector2di, vector2df, line, triangle, plane….