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

Các kỹ thuật chạm nổi 3d và ứng dụng

72 2 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

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 1,65 MB

Nội dung

ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Vũ Duy Tuyên CÁC KỸ THUẬT CHẠM NỔI 3D VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ Thái Nguyên – 2010 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Tai ngay!!! Ban co the xoa dong chu nay!!! http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Vũ Duy Tuyên CÁC KỸ THUẬT CHẠM NỔI 3D VÀ ỨNG DỤNG Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Đỗ Năng Toàn Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Thái Nguyên – 2010 LỜI CAM ĐOAN Tơi, Vũ Duy Tun xin cam đoan tồn nội dung luận văn tự sưu tầm, tra cứu xếp cho phù hợp với nội dung yêu cầu đề tài Nội dung luận văn chưa công bố hay xuất hình thức khơng chép từ cơng trình nghiên cứu Phần mã nguồn chương trình tơi tự thiết kế xây dựng, có sử dụng số thư viện chuẩn thuật toán tác giả xuất công khai miễn phí mạng Internet Nếu sai tơi xin hồn tồn chịu trách nhiệm Người Cam Đoan Vũ Duy Tuyên Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI CÁM ƠN Sau thời gian nghiên cứu, tìm hiểu viết luận văn, luận văn em hoàn thành Lời em xin chân thành cảm ơn giúp đỡ, bảo hướng dẫn nhiệt tình thầy giáo PGS.TS Đỗ Năng Tồn – Viện Cơng nghệ Thơng tin thuộc Viện Khoa học Công nghệ Việt Nam giáo viên hướng dẫn em suốt thời gian làm luận văn Em xin chân thành cảm ơn thầy giáo, cô giáo, anh, chị cơng tác phịng Thực ảo – Viện Công nghệ thông tin, thầy cô giáo công tác Khoa công nghệ thông tin – Đại học Thái Nguyên, tập thể bạn học viên lớp cao học Khóa ln giúp đỡ chia sẻ kinh nghiệm suốt khóa học Xin chân thành cám ơn Ban lãnh đạo Ngân hàng Nông nghiệp Phát triển Nông thôn Việt Nam chi nhánh Hải Phịng bạn đồng nghiệp phịng Điện Tốn tạo điều kiện giúp đỡ để tơi hồn thành khóa học Thái Nguyên, ngày 10 tháng 10 năm 2010 Học viên Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Vũ Duy Tuyên Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn i    MỤC LỤC Trang DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT iii DANH MỤC CÁC HÌNH VẼ iv PHẦN MỞ ĐẦU Chương 1: KHÁI QUÁT THỰC TẠI ẢO VÀ CHẠM NỔI 3D 1.1 Khái quát thực ảo 1.2 Ứng dụng thực ảo 1.2.1 Giáo dục khoa học 1.2.2 Y học 1.2.3 Thiết kế xây dựng 1.2.5 Hàng không 1.2.4 Quân 1.2.6 Nghệ thuật 10 1.2.7 Điện ảnh 11 1.2.8 Game giải trí 11 1.2.9 Hội thảo từ xa 11 1.3 Kỹ thuật chạm 3D 13 Chương 2: MỘT SỐ KỸ THUẬT CHẠM NỔI 14 2.1 Kỹ thuật Bump mapping 14 2.1.1 Kỹ thuật Emboss bump mapping 16 2.1.2 Kỹ thuật Dot Product 17 2.1.3 Kỹ thuật Environment mapping 17 ii    2.2 Kỹ thuật Normal mapping 22 2.3 Kỹ thuật Displayment mapping 25 2.3.1 Không gian tiếp tuyến 30 2.3.2 Tính tốn đồ chiều cao: 33 2.3.3 Ánh xạ thay đỉnh 33 2.3.4 Ánh xạ thay trêm điểm ảnh 37 2.3.5 Ánh xạ thay điểm ảnh với hàm khoảng cách 41 2.4 Kỹ thuật Parallax mapping 50 2.4.1 Parallax mapping 51 2.4.2 Steep parallax mapping: 54 2.4.3 Parallax mapping với độ dốc thông tin: 55 Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 58 3.1 Đặt vấn đề 58 3.2 Kỹ thuật chạm ánh xạ thay sử dụng hàm khoảng cách 58 3.3 Một số hình ảnh kết chương trình 59 PHẦN KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64 iii    DANH MỤC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Binormal Véc tơ nửa pháp tuyến Bitangent Véc tơ nửa tiếp tuyến BRDF Hàm phân bố xuất phản xạ hai chiều (Bidirectional Reflectance Distribution Funtion) CPU Bộ xử lý trung tâm (Center Processing Unit) 3D chiều (3Dimension) FS Tơ bóng mảnh (Fragment shader) GPU Đơn vị xử lý đồ họa (Graphic Processor Unit) Mipmap Tập hợp nhóm loại cỡ mảng hình chất liệu NURB Là kiểu Basis spline (Non-Uniform Rational BSplines) PS Tơ bóng điểm ảnh (Pixel Shader) VS Tơ bóng đỉnh (Vertex Shader) Texel Là đơn vị không gian kết cấu (Texture element – texture pixel) iv    DANH MỤC CÁC HÌNH VẼ Hình 1.1 Hình ảnh dự án nghiên cứu tay người Hình 1.2 Bên trái- Quả tim người, Bên phải- Mắt người Hình 1.3 Hình ảnh ứng dụng thực ảo xây dựng Hình 1.4 Ứng dụng thực ảo huấn luyện quân Hình 2.1 Bump mapping 13 Hình 2.2 Các ảnh kết cấu cho đồ khối 17 Hình 2.3 a- Environment map, b- Tính tốn véc tơ phản chiếu 18 Hình 2.4 Ý tưởng displacement mapping 26 Hình 2.5 Khơng gian tiếp tuyến 28 Hình 2.6 Displacement mapping thiết bị tơ bóng đỉnh 31 Hình 2.7 Ánh xạ thay điểm ảnh 34 Hình 2.8 Ray tracing trường chiều cao 35 Hình 2.9 Một trường hợp khó khăn cho thuật tốn Displacement 39 Hình 2.10 Việc kết xuất văn thay 39 Hình 2.11 Một ví dụ ánh xạ khoảng cách hai đơn vị độ dài 40 Hình 2.12 Sphere stracing 41 Hình 2.13 Displacement mapping với việc vẽ hình cầu 44 Hình 2.14 Ánh xạ song song (Parallax mapping) 47 Hình 2.15 Ánh xạ song song với offset limiting 48 Hình 2.16 Parallax mapping with slope information 50 Hình 3.1 Ảnh màu -ảnh chiều cao - ảnh pháp tuyến quạt 54 Hình 3.2 Ảnh quạt kỹ thuật chạm 54 v    Hình 3.4 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến tường đá 55 Hình 3.5 Ảnh tường đá kỹ thuật chạm 55 Hình 3.6 Hình kết thay đổi độ sâu bump số lần lặp 56 Hình 3.7 Hình kết thay đổi độ sâu 0.50 56 Hình 3.8 Kết thay đổi lần lặp 57 Hình 3.9 Kết thay đổi hướng ánh sáng 57 Hình 3.10 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến đoạn văn 58 Hình 3.11 Ảnh chữ kỹ thuật chạm 58 Hình 3.12 Kết giảm độ sâu 0.30 ảnh text 59 48    Việc thực giống với tạo bóng điểm ảnh bump mapping, khác tọa độ kết cấu đầu vào thay đổi trước số pháp tuyến ánh xạ kết cấu bề mặt Giá trị chiều cao kênh alpha ánh xạ pháp tuyến float h = tex2D(hMap, uv).a * SCALE + BIAS; return uv + h * View.xy / View.z; N Hằng só bề mặt chiều cào h Bề mặt ,B (u,v) (u’,v’) Hình 2.15 Ánh xạ song song với offset limiting Thực giống với đổ bóng điểm ảnh bump mapping, parallax mapping dạng ban đầu có lỗ hổng đáng kể Việc tính tốn trình bày phần trước cho điểm (u’, v’), có chiều cao giống điểm (u, v), Bất kỳ bề mặt mà parallax trình bày có chiều cao khác Tại gần góc vng, tọa độ kết cấu song song có xu hướng nhỏ Một liên kết đường song song nhỏ có nghĩa chiều cao (u’, v’) giống chiều cao (u, v) Một cách tuần tự, đường song song gần Như góc nhìn trở lên rộng hơn, giá trị song song gần vô tận Khi giá trị song song trở nên có ý nghĩa lớn, lợi số (u’, v’) giống với độ cao (u, v), kết ngẫu nhiên Điều làm giảm bề mặt với mẫu chiều cao phức tạp tới lộn xộn điểm ảnh mà khơng tìm thấy đồ kết cấu ban đầu Một giải pháp đơn giản để giải vấn đề hạn chế offset để chúng không phát triển dài chiều cao ban đầu (u, v) [Wel04] Kiểm tra offset ban đầu h(u; v) (Vx/Vz; Vy/Vz), kết luận rằng: - Khi bề mặt gần góc bẹt Vz i < n Chúng ta chọn t ti mà NB[ti] a>1.0-i/n sau bóng với phương pháp bump mapping khác float step = 1.0 / n vec2 dt = E.xy * bumpScale / (n * E.z) float height = 1.0; vec2 t = texCoord.xy; vec4 nb = texture2DLod(NB, t, LOD); while (nb.a < height) 50    { height -= step; t += dt; nb = texture2DLod(NB, t, LOD); } // Shade using N = nb.rgb Ở đây, LOD mức Mip-map; giữ liên tục suốt tia dấu vết làm giảm chi phí kết cấu lần đọc Bởi có tia cạnh (tracer ray) nhỏ bên tạo bóng điểm ảnh, cách dễ dàng theo dõi tia bóng tia mắt Các bóng lặp giống việc liệt kê trên, ngoại trừ tăng chiều cao lần lặp gia tăng t ánh sáng véc tơ ΔT=Lxy*bumpscale/(nLz) 2.4.3 Parallax mapping với độ dốc thông tin: Các phương pháp bump mapping, parallax mapping, normal maping, displacement mapping,… thừa nhận bề mặt nằm ngang cục bộ, ngoại trừ sphere tracing, làm việc với vị trí hình trụ xấp xỉ Tuy nhiên, trường chiều cao normal map có thêm thông tin mà chưa khai thác Một xấp xỉ tốt đạt thừa nhận bề mặt phẳng, véc tơ pháp tuyến tùy ý (tức bề mặt không cần thiết phải song song với bề mặt nhẵn) Pháp tuyến mặt xấp xỉ thực véc tơ pháp tuyến đọc từ ánh xạ pháp tuyến, điều khơng cần thiết với kết cầu tìm kiếm khác N N’ h Bề mặt mịn T,B u, v u’, v’ Hình 2.16 Parallax mapping with slope information Một véc tơ vị trí gần bề mặt (u, v, h(u, v)) Véc tơ pháp tuyến bề mặt bóng pháp tuyến ’(u, v) đọc từ ánh xạ pháp tuyến (u, v) Tham số 51    phương trình bán kính nhìn (u, v, 0) + t Việc chia nhỏ phương trình tia phương trình mặt xấp xỉ, ta có: ’ (u, v , 0) + V.t = ’ (u, v, h) Sự diễn tả thông số t điểm liên quan (u’, v’, h’) Chúng ta có: , (u’, v’, h’) = (u, v, 0) + h T = h Chúng ta cần hai tọa độ đầu hai tọa độ texel offset (texel coordinate offsets) (u’, v’) = (u, v) + h Như vẽ bên phần việc giới hạn offset, ( ’, ) nhỏ, offsets phải lớn nên sử dụng thay đổi an toàn: (u’, v’) ≈ (u, v) = h Nz’ (Vx, Vy) Do hình dáng gọi hàm dưới: float4 Normal = tex2D(hMap, uv); float h = Normal.a * SCALE + BIAS; uv += h * Normal.z * View.xy; Parallax mapping làm cho cố gắng để bù đắp (offset) tọa độ kết cấu hướng tới sẵn sàng nhìn thấy điểm trường chiêu cao Dĩ nhiên, việc sử dụng thử đơn, không rút kết mong đợi Một đắn giải pháp, nhiên, gia tăng việc nhắc nhắc lại bước parallax mapping vài lần (3-4 lần) Sau việc thử nhận xấp xỉ phần bên (ui, vi, hi) Thay điều vào phương trình tia: ((ui, vi, hi) + t) = ‘ (ui+1, vi+1, hi+1) (2.7) Để giải phương trình để cập nhật xấp xỉ, bỏ qua phân chia với ( ’ ’): (ui+1, vi+1 , hi+1) ≈ (ui, vi, hi) + (h(ui, vi) - hi) N’z Tạo bóng điểm ảnh parallax mapping lặp lặp lại tương tự với parallax mapping với độ dốc thông tin với khác sau: 52    for(int i = 0; i < ITERATION; i++) { float4 Normal = tex2D(hMap, uv); float h = Normal.a * SCALE + BIAS; uv += (h - uv.z) * Normal.z * View; } Sự lặp lại parallax mapping tương đương với việc tìm kiếm gốc số ban đầu, cố gắng giải phương trình tia Tuy nhiên, vấn đề Phương pháp khơng thể đảm bảo tìm thấy điểm giao gần với camera (thậm chí khơng hội tụ để đảm bảo)[14] 53    Chương CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Đặt vấn đề Trên sở lý thuyết kỹ thuật chạm trình bày chương trước, chương trình bày chương trình minh họa kỹ thuật chạm sử dụng phương pháp ánh xạ thay với hàm khoảng cách Chương trình minh họa viết ngơn ngữ Visual C++ nằm visual studio 2008 Chương trình sử dụng hàm thư viện OpenGL, Cg Sh Chương trình với ảnh đầu vào cần để thực kỹ thuật chạm nổi, sau q trình tính toán màu cho ảnh, đồ chiều cao, ảnh pháp tuyến chương trình thực việc chạm lên ảnh với hàm khoảng cách Kết thu ảnh với hình dạng gồ gề Các ảnh chương tạo với thực Sh 3.2 Kỹ thuật chạm ánh xạ thay sử dụng hàm khoảng cách Các bước để giải toán kỹ thuật chạm sử dụng ánh xạ thay với hàm khoảng cách sau: Bước 1: Nhập ảnh Bước 2: - Tính tốn hình học ban đầu để đưa ảnh màu; - Tìm vị trí đồ chiều cao tương ứng với vị trí bề mặt; - Tính tốn pháp tuyến bề mặt đồ chiều cao; - Thêm vào pháp tuyến bề mặt từ đồ chiều cao với pháp tuyến bề mặt hình học để pháp tuyến hướng - Tính tốn tương tác bề mặt nhấp nhô với ánh sáng ảnh sử dụng Bước 3: Tính tốn khoảng cách Bước 4: Thực thay với tính tốn khoảng cách 54    3.3 Một số hình ảnh kết chương trình 3.3.1 Ví dụ hình ảnh quạt với ba ảnh tạo với thực sh: a Ảnh màu quạt b Ảnh chiều cao quạt c Ảnh pháp tuyến quạt Hình 3.1 Ảnh màu -ảnh chiều cao - ảnh pháp tuyến quạt Sau tính tốn khoảng cách thực kỹ thuật chạm ánh xạ thay với hàm khoảng cách ảnh sau: Hình 3.2 Ảnh quạt kỹ thuật chạm 55    3.3.2 Hình ảnh tường đá tạo thực sh a Ảnh màu tường đá b Ảnh chiều cao tường đá c Ảnh pháp tuyến tường đá Hình 3.4 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến tường đá Sau tính tốn hàm khoảng cách thực kỹ thuật ánh xạ thay ta ảnh sau: Hình 3.5 Ảnh tường đá kỹ thuật chạm 56    Khi thay đổi độ sâu bump (ấn I – giảm thay thế) 0.50, thay đổi lần lặp lên 204 Filtering off ta có ảnh kết sau Hình 3.6 Hình kết thay đổi độ sâu bump số lần lặp Chúng ta thay đổi độ sâu bump 0.50 ta kết sau: Hình 3.7 Hình kết thay đổi độ sâu 0.50 57    Thay đổi số lần lặp ta có ảnh kết quả: Hình 3.8 Kết thay đổi lần lặp Chúng ta thay đổi hướng ánh sáng ta có kết sau: Hình 3.9 Kết thay đổi hướng ánh sáng 58    3.3.3 Hình ảnh đoạn văn tạo thực sh Ảnh màu Ảnh chiều cao Ảnh pháp tuyến Hình 3.10 Ảnh màu - ảnh chiều cao - ảnh pháp tuyến đoạn văn Sau tính tốn hàm khoảng cách thực kỹ thuật chạm ánh xạ thay đoạn văn thu kết sau: Hình 3.11 Ảnh chữ kỹ thuật chạm 59    Thay đổi độ sâu 0.30 ảnh text ta có kết sau: Hình 3.12 Kết giảm độ sâu 0.30 ảnh text Trên kết kỹ thuật chạm ánh xạ thay với hàm khoảng cách, kỹ thuật thay nhanh cho ánh xạ thay dựa ray tracing bề mặt ẩn Kỹ thuật thông tin chứa hàm khoảng cách cho phép thực bước lớn tia xa từ bề mặt, chắn không thực bước lớn mà tạo lỗ hổng hình sinh Kết thực có hiệu quả; hội tụ (converge) số lặp lại (iterativeness) thay đổi cần đến vòng đơn GeForce FX GeForce Series GPUs Chúng ta sử dụng kỹ thuật cho bề mặt cong Mặc dù thuật toán sử dụng mơ hình với tiếp tuyến thích hợp, đưa vùng méo mó độ cong cao Trong phần đặc biệt ánh xạ thay đưa (Wang et al.2004) sử dụng kiểu chiếu khối tứ diện (tetrahedral) cho bề mặt cong, phương pháp áp dụng thuật tốn Như chiếu khối tứ diện hồn thành bóng đỉnh (Wylie et al.2002) 60    PHẦN KẾT LUẬN Sau thời gian tìm tịi, nghiên cứu đề tài tơi tìm hiểu số vấn đề như: thực ảo, kỹ thuật chạm (bump mapping, normal mapping, displacement mapping, parallax mapping, vertex shading, perpixel shading, xây dựng chương trình minh họa sử dụng phương pháp displacement mapping với hàm khoảng cách Trong thời gian làm luận văn tốt nghiệp, cố gắng đầu tư thời gian, cơng sức cho việc tìm hiểu nghiên cứu đề tài nhận bảo, định hướng tận tình thầy giáo hướng dẫn bạn đồng nghiệp hạn chế mặt thời gian khó khăn việc tìm kiếm tài liệu nên luận văn đạt kết chưa cao Hướng nghiên cứu đề tài: tìm hiểu kỹ thuật chạm nổi: relief mapping, shadow mapping, ảnh tốt Các ứng dụng phần cứng đồ họa cài đặt kỹ thuật chạm nguyên thủy (emboss mapping, environment mapping, Dot 3D mapping) chưa đưa kỹ thuật chạm vào ứng dụng phổ biến thực tế , hướng phát triển tiếp đề tài dần đưa kỹ thuật chạm có chất lượng tốt vào ứng dụng phổ biến thực tế (ứng dụng game3D, y học, khoa học kỹ thuật, ) 61    TÀI LIỆU THAM KHẢO Tiếng việt Huỳnh Văn Đức, Hoàng Đức Hải (2000), Thiết kế Đồ họa định hướng đối tượng với C++, Nxb Giáo dục Lương Chi Mai, Huỳnh Thị Thanh Bình (2000), Nhập mơn Đồ họa máy tính, Nxb Khoa học Kỹ thuật Tiếng anh A Halli, A Saaidi, K Satori, and H Tairi (2008), Per-Pixel Displacement Mapping Using Cone Tracing, International Review on Computers and Software (I.Re.Co.S), Vol 3(5) Akram Halli, Abderrahim Saaidi, Khalid Satori and Hamid Tairi (2009), PerPixel Extrusion Mapping, IJCSNS International Journal of Computer Science and Network Security, VOL.9 No.3 A Tevs, I Ihrke, and H.-P Seidel (2008), Maximum Mipmaps for Fast, Accurate, and Scalable Dynamic Height Field Rendering, Proc Symp Interactive 3D Graphics and Games, pp 183-190 Brian E Smits , Peter Shirley , Michael M Stark (2000), Direct Ray Tracing of Displacement Mapped Triangles, Proceedings of the Eurographics Workshop on Rendering Techniques 2000, pp.307-318 F Policarpo and M.M Oliveira (2007), Relaxed Cone Stepping for Relief Mapping, GPU Gems 3, pp 409-428 J F Blinn (1978), Simulation of wrinkled surfaces, Proc of Siggraph 1978, ACMPress, pp 286–292 J W Patterson, S G Hoggar, and J R Logie (1991), Inverse displacement mapping, Computer Graphics Forum, Vol 10, no 2, pp 129–139 62    10 K Oh, H Ki, and C.H Lee (2006), Pyramidal displacement mapping: A GPUbased artifacts-free ray tracing through an image pyramid, ACM Symposium on Virtual Reality Software and Technology (VRST’06), pp.75–82 11 László Szirmay-Kalos, Tamás Umemhoffer (2006), Displacement Mapping on the GPU – State of the Art, Vol3, pp.1-24 12 Lifeng Wang, Xi Wang, Xin Tong, Stephen Lin, Shimin Hu (2002), Baining Guoand Heung-Yeung Shum, View-dependent displacement mapping ACM Trans Graph.22 (3) 13 L Szirmay-Kalos and T Umenhoffer (2008), Displacement Mapping on the GPU – State of the Art, Computer Graphics Forum, Vol 27 (6), pp 1567-1592 14 M Premecz (2006), Iterative parallax mapping with slope information, Central European Seminar on Computer Graphics CESCG’06, http://www.cescg.org/CESCG-2006/papers/ TUBudapest-Premecz-Matyas.pdf 15 T Welsh (2004), Parallax mapping with offset limiting: A per-pixel approximation of uneven surfaces, Infiscape Corp 16 William Donnelly (2005), Per-pixel Displacement Mapping with Distance Functions, GPU Gems pp.123-136

Ngày đăng: 30/10/2023, 16:23

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

TÀI LIỆU LIÊN QUAN

w