1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu về công nghệ với 3d engine

67 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

MỤC LỤC CHƯƠNG I: TỔNG QUAN 1.1 Giới thiệu nơi thực tập 1.2 Lý chọn đề tài: “nghiên cứu công nghệ với 3d engine” 1.3 Tổng quát đề tài CHƯƠNG II: LÝ THUYẾT VỀ SHADER 2.1 Vertex shader 2.1.1 Xử lý vertex fixed function pipeline 2.1.2 Cách thức hoạt động vertex shader 2.2 Pixel shader .10 2.2.1 xử lý điểm ảnh fixed function pipeline 10 2.2.2 cách thức hoạt động pixel shader .14 2.3 Tìm hiểu ngơn ngữ bậc cao hlsl sử dụng cho shader 16 CHƯƠNG III: 3D NWFC .17 3.1 Các tính nwfc engine 17 3.2 Các tính 3d 17 3.3 Mơ hình xây dựng nwfc engine 18 3.4 Cấu trúc nwfc .19 3.5 Hệ thống chất liệu .23 3.5.1 Giới thiệu 23 3.5.2 Cấu trúc hệ thống chất liệu ( material) 23 3.6 Các thuật toán vertex pixel shader áp dụng cho nwfc engine 26 3.6.1 Các thuật toán đổ bóng thời gian thực cho shadow volume 26 3.6.1.1 L ý thuyêt đổ bóng thời gian thực .26 3.6.1.2 Thuật toán đổ bóng thời gian thực dùng vertex shader 32 3.6.2 Thuật toán để dựng khung cảnh bầu trời 33 3.6.2.1 Lý thuyết khung cảnh bầu trời .34 3.6.2.2 Thuật toán vertex shader cho khung cảnh bầu trời .35 3.6.3 Các thuật toán chiếu sáng theo điểm ảnh (per-pixel lighting) sử dụng normal map specular map .37 3.6.3.1 Lý thuyết chiếu sáng theo điểm ảnh 37 3.6.3.2 Thuật toán vertex shader pixel shader dùng cho per-pixel lighting 43 CHƯƠNG IV: HỆ THỐNG VẬT LÝ .47 4.1 Hệ thống vật lý 47 4.2 Engine vật lý novodex .48 4.3 Engine vật lý novedex .50 4.4 Cài đặt novodex ứng dụng .52 CHƯƠNG V: HỆ THỐNG DIỄN HOẠT 58 5.1 Giới thiệu chung hệ thống diễn hoạt 58 5.2 Diễn hoạt khung xương 58 5.2.1 Khái niệm: 58 5.2.2 Tổ chức quản lý diễn hoạt khung xương: 58 5.3 Diễn hoạt nội suy .61 5.3.1 Khái niêm: 61 5.3.2 Nội dung: 61 5.4 Kết hợp diễn hoạt .62 5.4.1 Kết hợp diễn hoạt khác vào khung xương 62 5.4.2 Kết hợp diễn hoạt phần khung xương 63 5.5 Hệ thống diễn hoạt thực thi 65 5.5.1 Sơ đồ hệ thống diễn hoạt 65 5.5.2 Chức thành phần sơ đồ 66 5.5.2.1 Hệ thống xử lý liệu 66 5.5.2.2 Các lớp quản lý đường dẫn 66 5.5.2.3 Các lớp quản lý diễn hoạt 67 KẾT LUẬN 69 TÀI LIỆU THAM KHẢO 71 CHƯƠNG I: TỔNG QUAN 1.1 Giới thiệu nơi thực tập Trường trung học phổ thơng kỹ thuật việt trì thành lập ngày 03/7/2003 Là trường nằm hệ thống trường trung học phổ thông công lập tỉnh phú thọ Những ngày thành lập trường có 18 cán giáo viên công nhân viên với 180 học sinh, sau gần năm đội ngũ cán giáo viên công nhân viên nhà trường phát triển mạnh mẽ số lượng chất lượng, năm 2007-2008 trường có 44 cán hộ giáo viên công nhân viên với gần 500 học sinh Qua hai năm học 2006-2007, 2007-2008, trường có 12 lớp ( bao gồm 04 lớp khối 10, 04 lớp khối 11, 04 lớp khối 12) Tuy có nhiều khó khăn nhà trường tổ chức tốt việc dạy học Kết có 12 học sinh giỏi cấp tỉnh mơn: ngữ văn, hố học, vật lý lịch sử, Tin học Được quan tâm tỉnh uỷ hội đồng nhân dân tỉnh, ubnd tỉnh phú thọ sở giáo dục đào tạo trường cấp vốn xây dựng đợt một, dự kiến học kỳ hai năm học 2008-2009 có ngơi trường cơng lập với quy mô 30 lớp đại khang trang nước thơn thình xã vân phú Thực chương trình thí đua thay đổi nội dung, phương pháp giảng dạy tiên tiến khối trung học phổ thông Đáp ứng nhu cầu học tập ngày cao học sinh khu vực phía bắc thành phố việt trì xã lân cận thuộc huyện phù ninh, lâm thao Là trường vừa dạy chương trình văn hố phổ thơng vừa dạy nghề với mục đích học sinh trường vừa có trung học phổ thơng hệ quy vừa có tay nghề bậc 2/7 Vì chương trình dạy nghề nhiều mà cơng nghệ thông tin nghề học sinh u thích đăng ký nhiều Chương trình đào tạo nghề sau: lớp 10: tiết /1 tuần lớp 11: tiết /1 tuần lớp 12: 5,5 tiết/1 tuần Vì sau trường học sinh nhận tay nghề bậc 2/7, cơng ty, sở tuyển dụng yêu cầu với tay nghề bậc 3/7 thế, nhà trường liên kết với trường trung tâm dạy nghề Đào tạo tiếp em có nhu cầu sau tốt nghiệp cần học thêm để lấy tay nghề cao phục vụ cho công việc sau 1.2 Lý chọn đề tài: “nghiên cứu công nghệ với 3d engine” Ngày nay, sản phẩm giải trí mà đặc biệt game mang lại nguồn lợi nhuận to lớn cho ngành cơng nghiệp máy tính Do nhu cầu thị trường tăng nhanh, game ngày có chất lượng cao thời gian xây dựng ngày rút ngắn Các game 3d thị trường đa dạng nội dung chủng loại có điểm chung xây dựng game engine Chất lượng game phụ thuộc vào chất lượng game engine mà sử dụng Game engine phần cốt lõi để xây dựng game 3d engine phần quan trọng game engine Việc sử dụng game engine để xây dựng game xu tất yếu để có game chất lượng cao thời gian ngắn Tuy nhiên, nước ta việc xây dựng game 3d game engine điều mẻ Chính vậy, em thực đề tài “nghiên cứu công nghệ 3d engine” với mong muốn góp vào viên gạch để xây dựng nên ngành công nghiệp game nước nhà tương lai Thực đề tài em muốn giới thiệu với thầy cô giáo trường trung học phổ thơng kỹ thuật việt trì, em học sinh công nghệ làm game 3d Em hi vọng sau xem song đề tài em học sinh trường có cách nhìn khác lập trình game số học sinh trở thành lập trình game chuyên nghiệp tương lai, đưa game việt nam có vị trí tương đối làng game giới 1.3 Tổng quát đề tài Trong đề tài “nghiên cứu công nghệ 3d engine” em chia làm chương Trong đó: Chương i: giới thiệu nơi thực tập lý chọn đề tài Chương ii: tìm hiểu cơng nghệ shader Đây cơng nghệ làm game việc dựng hình 3d Chương iii: giới thiệu thành phần nwfc engine cách thức xây dựng nwfc engine công cụ dùng để thiết kế game 3d chủ yếu làm nhiệm vụ hiển thị quản lý tập tin, nwfc engine viết dựa cơng nghệ shader Ngồi việc hiển thị quản lý tập tin cần phải có hệ thống khác để tạo game hoàn chỉnh hệ thống diễn hoạt, hệ thống vật lý chương iv,v em giới thiệu xây dựng hệ thống diễn hoạt, hệ thống vật lý dùng game 3d Để tìm hiểu sâu vấn đề chi tiết vào chương sau CHƯƠNG II: LÝ THUYẾT VỀ SHADER Công nghệ shaders gồm hai thành phần là: vertex shader (còn gọi vertex program) pixel shader (hay fragment program) công nghệ tích hợp sẵn phần cứng cho phép người lập trình 3d hồn tồn làm chủ quy trình xử lý liệu hình ảnh phần cứng (graphic pipeline) Để tìm hiểu shaders tìm hiểu vertex shader pixel shader Pixel shader vertex shader xử lý điểm đỉnh chip xử lý đồ họa Tại pixel / vertex shader, gpu tiến hành dựng tô màu cho đối tượng đồ họa Gpu có nhiều pixel shader vertex shader có khả xử lý đồng thời nhiều đối tượng đồ họa Vì pixel shader vertex shader có vai trị định đến khả xử lý CPU 2.1 Vertex shader Vertex shader chương trình có vai trị xử lý liệu vertex thi hành Vertex shader direct3d chủ yếu viết hợp ngữ hlsl (được phát triển kể từ phiên direct3d 9.0) Vertex shader công nghệ phát triển theo hệ phần cứng có nhiều phiên khác nhau, phiên cao chạy hệ phần cứng cũ ngược lại Các phiên vertex shader gồm có vs_1_1, vs_2_0, vs_2_x, vs_3_0… Vertex shader fixed function loại trừ lẫn thi hành, ta phải nắm quy trình xử lý vertex fixed function trước tự viết cho vertex shader ý muốn 2.1.1 Xử lý vertex fixed function pipeline Fixed function pipeline quy trình xử lý liệu hình ảnh 3d cung cấp sẵn direct3d, quy trình theo thuật tốn dựng hình cố định loại liệu 3d đầu vào Trước tìm hiểu vertex shader ta xem qua qui trình xử lý vertex mà direct3d cung cấp sẵn thơng qua fixed function pipeline Hình 2-1: xử lý vertex pixel function pipeline Dữ liệu đầu vào quy trình liệu đỉnh 3d (vertex) không gian vật thể (model space), không gian vertex có toạ độ tính từ gốc toạ độ vật thể Biến đổi giới (world transform): biến đổi vertex từ không gian vật thể (model space) sang không gian giới (world space), vertex có toạ độ tương khơng gian giới Vertex blending Biến đổi toạ độ vertex nhiều ma trận biến đổi giới khác Mức độ tham gia ma trận xác định thông qua giá trị trọng lượng (weight) ứng với ma trận Biến đổi quan sát (view transform) Biến đổi vertex từ không gian giới vào không gian quan sát Vị trí camera nằm gốc toạ độ không gian quan sát, sau biến đổi vertex có toạ độ toạ độ tương đối camera Tính giá trị sương mù vertex (vertex fog) Tính tốn giá trị màu sắc vertex áp dụng hiệu ứng sương mù Chiếu sáng ( lighting and material) Tính tốn ánh sáng vertex dựa mức độ phản xạ ánh sáng vertex Biến đổi chiếu ( prọection transform) Biến đổi vertex từ không gian quan sát sang không gian chiếu Đây cơng đoạn cuối quy trình biến đổi liệu đầu quy trình đầu vào quy trình xử lý đối tượng sở (primitive processing) Tồn quy trình xử lý vertex fixed function thay chương trình vertex shader, direct3d hồn tồn chuyển giao quyền xử lý vertex cho vertex shader Vertex shader sau kết thúc trả quyền điều khiển với liệu xử lý ngược lại cho fixed function pipeline để xử lý tiếp 2.1.2 Cách thức hoạt động vertex shader Để biết cách thiết kế vertex shader trước tiên ta cần phải nắm mơ hình hoạt động vertex shader Đó mơ hình mang tính chất lý thuyết giúp ta dễ tiếp cận hình dung cách thức mà vertex shader hoạt động Giống loại máy móc cơng nghiệp Vertex shader nhận liệu đầu vào (input), sau tiến hành xử lý liệu số tác vụ, cuối xuất thành phẩn liệu đầu (output) Sau sơ đồ lý thuyết: Hình 2-2: sơ đồ lý thuyết máy ảo vertex shader Trong sơ đồ liệu vertex truyền từ trái sang phải Các ghi (registers) nơi chứa quản lý liệu đầu vào đầu shader Các tác vụ thi hành shader cấu tạo từ tập vi lệnh hợp ngữ (assembly- language instructions), vi lệnh thi hành đơn vị số học luận lý (arithmetic logic unit, alu) nằm gpu (graphic processor unit) 3d Dữ liệu đầu vào vertex shader truyền vào thông qua ghi đầu vào (input registers) Vertex shader sau thi hành xuất giá trị đầu thông qua ghi đầu (output registers) Dữ liệu đầu vào shader thông tin vertex lấy từ vertex buffer (do chương trình cung cấp), liệu bao gồm toạ độ, pháp tuyến, toạ độ texture, màu diffuse… liệu đầu vertex shader trả thẳng lại cho qui trình xử lý (graphic pipeline) để chuyển qua cơng đoạn xử lý đối tượng sở (primitive processing) Các ghi sử dụng shader ghi chiều ( lưu số thực ghi) Có kiểu ghi, kiểu có cách sử dụng khác Thanh ghi liệu vào (input registers): chứa liệu đầu vào Thanh ghi (constant registers ): chứa số dùng alu Thanh ghi tạm (temporary registers): chứa liệu tạm thời Thanh ghi liệu (output registers): chứa kết tính tốn vertex shader Với ghi đóng vai trị lưu trữ, alu đóng vai trị thi hành lệnh, phần quan trọng shader vi lệnh Vi lệnh vertex shgader chủ yếu vi lệnh toán học thực tác vụ cụ thể tính tích vơ hưóng (dot product), tích hữu hướng (cross product), nhân ma trận, tìm minmax… Vertex shader nguyên thuỷ đựợc xây dựng hợp ngữ Các ngôn ngữ cấp cao dành cho vertex shader xuất sau hlsl (chỉ có direct3d 9.0 trở lên) hay glsl (được phát triển phiên opengl 2.0) Vì trước directx9 đời việc viết shader công việc thật nặng nhọc Người lập trình phải tự quản lý thứ từ ghi vi lệnh Họ phải tự tối ưu hố cơng việc (vertex shader pixel shader có giới hạn số lượng vi lệnh tối đa chương trình), chưa kể đến chương trình hợp ngữ khó đọc kiểm lỗi Sự đời ngơn ngữ cấp cao bước tiến lớn cơng nghệ giúp người lập trình dễ dàng việc viết shaders đề cập tới thuật toán viết ngôn ngữ hlsl ngôn ngữ giới thiệu chi tiết phần sau 2.2 Pixel shader Pixel shader chương trình tính tốn xử lý màu hay nhiều điểm ảnh Pixel shader thực thi lần cho điểm ảnh dựng lên hình từ liệu vertex Vì pixel shader chạy tốn nhiều thời gian vertex shader (chỉ xử lý lần cho vertex) Pixel shader viết hợp ngữ hay hlsl Các phiên pixel shader gồm có ps_1_1,ps_1_2,ps_1_3 Ps_1_4, ps_2_0,ps_2_x , ps_3_0… Cũng giống vertex shader, pixel shader thi hành loại trừ với fixed function, tìm hiểu qui trình xử lý pixel fixed function điều cần thiết 2.2.1 xử lý điểm ảnh fixed function pipeline Sau liệu vertex xử lý ( thành toạ dộ không gian chiếu) chuyển qua để xử lý đối tượng sở (primitive processin) Hình 2-3 Qui trình xử lý đối tượng Clipping Loại bỏ đối tượng hình học khơng nhìn thấy khối quan sát ( viewing frustum) để tăng hiệu suất dựng hình Chuẩn hố hệ toạ độ (hômgênous divide) Chia thành phần liệu cho phần từ cuối Ánh xạ viewport (viewport scaling) Ánh xạ liệu vào toạ độ viewport Xử lý tam giác ( triangle setup) Chuẩn bị cho việc nội suy tam giác biến đổi thuộc tính vertex thành thuộc tính điểm ảnh Sau quy trình xử lý đối tượng sở hồn tất, liệu vertex nội suy thành liệu điểm ảnh sẵn sàng chuyển sang qui trình xử lý điểm ảnh (điểm ảnh lúc chưa phải giá trị màu mà mang thuộc tính tính tốn từ việc nội suy tamgiác mà thơi) Điểm ảnh sau tính tốn kết hợp thuộc tính màu sắc lấy mẫu 10

Ngày đăng: 15/08/2023, 11:46

HÌNH ẢNH LIÊN QUAN

Hình 2-1: xử lý vertex bằng pixel function pipeline - Nghiên cứu về công nghệ với 3d engine
Hình 2 1: xử lý vertex bằng pixel function pipeline (Trang 7)
Hình 2-2: sơ đồ lý thuyết máy ảo vertex shader - Nghiên cứu về công nghệ với 3d engine
Hình 2 2: sơ đồ lý thuyết máy ảo vertex shader (Trang 8)
Hình 2-3 Qui trình xử lý đối tượng - Nghiên cứu về công nghệ với 3d engine
Hình 2 3 Qui trình xử lý đối tượng (Trang 10)
Hình 2-4: Qui trình xử lý điểm ảnh qua hai giai đoạn Giai đoạn 1:  biến đổi dữ liệu nội suy trong vertex (bao gồm màu diffuse, màu - Nghiên cứu về công nghệ với 3d engine
Hình 2 4: Qui trình xử lý điểm ảnh qua hai giai đoạn Giai đoạn 1: biến đổi dữ liệu nội suy trong vertex (bao gồm màu diffuse, màu (Trang 11)
Hình 2-5: mô hình xử lý của pifuntion trong giai đoạn 1 - Nghiên cứu về công nghệ với 3d engine
Hình 2 5: mô hình xử lý của pifuntion trong giai đoạn 1 (Trang 12)
Hình 2-6: mô hình xử lý điểm ảnh của pixel shader trong giai đoạn 1 - Nghiên cứu về công nghệ với 3d engine
Hình 2 6: mô hình xử lý điểm ảnh của pixel shader trong giai đoạn 1 (Trang 13)
Hình 2-7: mô hình lý thuyết của máy ảo pixel shader - Nghiên cứu về công nghệ với 3d engine
Hình 2 7: mô hình lý thuyết của máy ảo pixel shader (Trang 14)
Hình 3-2: mô hình các thành phần của nwfc engine - Nghiên cứu về công nghệ với 3d engine
Hình 3 2: mô hình các thành phần của nwfc engine (Trang 19)
Hình 3-3  mô tả các phần của shader - Nghiên cứu về công nghệ với 3d engine
Hình 3 3 mô tả các phần của shader (Trang 25)
Hình 3-4 : cạnh bao là cạnh một mặt hướng ánh sáng còn mặt kề thì không - Nghiên cứu về công nghệ với 3d engine
Hình 3 4 : cạnh bao là cạnh một mặt hướng ánh sáng còn mặt kề thì không (Trang 26)
Hình vẽ sau đây minh hoạ cách tạo ra shadow volume mesh. - Nghiên cứu về công nghệ với 3d engine
Hình v ẽ sau đây minh hoạ cách tạo ra shadow volume mesh (Trang 27)
Hình 3-6: thuật toán dựng shadow volume với kỹ thuật z-fail - Nghiên cứu về công nghệ với 3d engine
Hình 3 6: thuật toán dựng shadow volume với kỹ thuật z-fail (Trang 29)
Hình 3-7: bối cảnh không có đổ bóng thời gian thực - Nghiên cứu về công nghệ với 3d engine
Hình 3 7: bối cảnh không có đổ bóng thời gian thực (Trang 31)
Hình 3-9: texture ở các cạnh dùng cho sky sphere - Nghiên cứu về công nghệ với 3d engine
Hình 3 9: texture ở các cạnh dùng cho sky sphere (Trang 32)
Hình   3-11:   tọa độ của skybox được cập nhật theo toạ độ của camera - Nghiên cứu về công nghệ với 3d engine
nh 3-11: tọa độ của skybox được cập nhật theo toạ độ của camera (Trang 33)
Hình ảnh minh hoạ - Nghiên cứu về công nghệ với 3d engine
nh ảnh minh hoạ (Trang 34)
Hình 3-14: không gian tiếp tuyến - Nghiên cứu về công nghệ với 3d engine
Hình 3 14: không gian tiếp tuyến (Trang 35)
Hình   3- 15:tạo   normal - Nghiên cứu về công nghệ với 3d engine
nh 3- 15:tạo normal (Trang 36)
Hình 3-16: chiếu sáng theo từng vertex  trong vertex shader Texture color: màu của texture chính, có được do lấy mẫu texture. - Nghiên cứu về công nghệ với 3d engine
Hình 3 16: chiếu sáng theo từng vertex trong vertex shader Texture color: màu của texture chính, có được do lấy mẫu texture (Trang 37)
Hình 3-17: chiếu sáng trong trên từng điểm ảnh trong vertex shader - Nghiên cứu về công nghệ với 3d engine
Hình 3 17: chiếu sáng trong trên từng điểm ảnh trong vertex shader (Trang 38)
Hình 1: chiếu sáng trên từng pixel (sử dụng tích vô hướg giữa normal và vector hướng ánh sáng). - Nghiên cứu về công nghệ với 3d engine
Hình 1 chiếu sáng trên từng pixel (sử dụng tích vô hướg giữa normal và vector hướng ánh sáng) (Trang 38)
Hình 3-20: các công đoạn sử dụng fixel function - Nghiên cứu về công nghệ với 3d engine
Hình 3 20: các công đoạn sử dụng fixel function (Trang 43)
Hình 3-21: kết quả sau cùng sau khi bổ sung một số hiệu ứng - Nghiên cứu về công nghệ với 3d engine
Hình 3 21: kết quả sau cùng sau khi bổ sung một số hiệu ứng (Trang 44)
Hình 4-1: ví dụ bao bọc đối tượng game bằng đối tượng của nocodex - Nghiên cứu về công nghệ với 3d engine
Hình 4 1: ví dụ bao bọc đối tượng game bằng đối tượng của nocodex (Trang 49)
Hình 4-2: các lớp chính trong hệ thống vật lý Các thành phần trong sơ đồ: - Nghiên cứu về công nghệ với 3d engine
Hình 4 2: các lớp chính trong hệ thống vật lý Các thành phần trong sơ đồ: (Trang 51)
Hình 4-3: điều khiển nhân vật với novedex - Nghiên cứu về công nghệ với 3d engine
Hình 4 3: điều khiển nhân vật với novedex (Trang 54)
Hình 5-1:sơ đồ quan hệ các lớp quản lý diễn hoạt - Nghiên cứu về công nghệ với 3d engine
Hình 5 1:sơ đồ quan hệ các lớp quản lý diễn hoạt (Trang 56)
Hình 5-2: ví dụ diễn hoạt qua các khung hình khoá - Nghiên cứu về công nghệ với 3d engine
Hình 5 2: ví dụ diễn hoạt qua các khung hình khoá (Trang 57)
Hình 5-3: minh hoạ kết hợp chuyển động các phần trong khung xương - Nghiên cứu về công nghệ với 3d engine
Hình 5 3: minh hoạ kết hợp chuyển động các phần trong khung xương (Trang 61)
12. Sơ đồ của hệ thống diễn hoạt - Nghiên cứu về công nghệ với 3d engine
12. Sơ đồ của hệ thống diễn hoạt (Trang 62)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w