Kỹ thuật hiển thị mơ hình Bump Mapping

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số kỹ thuật hiện thị mô hình 3d và ứng dụng hiện thị mô hình 3d di tích patuxay (Trang 35)

2.3.1. Bump mapping

Bên cạnh các kỹ thuật hiển thị truyền thống như chọn lọc có loại bỏ và thay thế ảnh 3D bằng ảnh 3D phần mềm mơ phỏng cịn sử dụng kỹ thuật hiển thị mới đó là bump mapping.

Bump mapping là một kỹ thuật đồ họa máy tính, trong đó một sự nhiễu loạn tới pháp tuyến bề mặt của đối tượng đang được biểu diễn được tìm kiếm trong một ánh xạ texture tại mỗi điểm ảnh và áp dụng trước khi việc tính tốn sự chiếu sáng được thực hiện (hãy xem, chẳng hạn như Phong shading). Kết quả thì phong phú hơn, sự mô tả bề mặt được chi tiết hơn mà giống với chi tiết vốn có trong tự nhiên hơn. Ánh xạ pháp tuyến và ánh xạ thị sai là các cách phổ biến nhất được sử dụng để thực hiện bump, sử dụng các kỹ thuật mới mà tạo ra bump mapping bằng cách sử dụng thang màu xám cũ kỹ.

Bump mapping là một kỹ thuật đồ họa máy tính để tạo một bề mặt được biểu diễn nhìn thực tế hơn bằng cách mơ hình hóa một texture bề mặt mấp mô cùng với các nguồn sáng trong môi trường. Ánh xạ bề mặt mấp mô làm điều này bằng cách thay đổi độ sáng của điểm ảnh trên bề mặt phản ứng lại với một ảnh raster heightmap được xác định cụ thể cho mỗi mặt.

Hình

Hình 2.9: Bề mặt các viên gạch trong văn miếu

Khi biểu diễn một cảnh 3D, ánh sáng và màu sắc của các điểm ảnh được xác định bởi sự tương tác của một mơ hình 3D cùng với ánh sáng trong cảnh. Sau khi nó được xác định là một đối tượng có thể nhìn thấy, lượng giác học được sử dụng để tính tốn pháp tuyến bề mặt hình học của đối tượng, được định nghĩa như một vector tại mỗi vị trí điểm ảnh trên đối tượng.Ví dụ, ánh xạ tẩm phủ tạo gạch cho hình ảnh 3D một bức tường đang rung chuyển (chỗ ánh xạ rung động cung cấpnhững ám hiệu ánh sáng và bóng tốt để làm viên gạch nhìn có vẻ như 3D hơn) có thể được mơ tả như một sự kết hợp của một kết cấu căn hộ màu đỏ, hai hoặc ba trạng thái vẽ của va chạm ánh xạ (việc vẽ ánh sáng và bóng), ánh xạ ánh sáng cho các bóng tồn cục và có thể ánh xạ hiệu ứng chiếu sáng lóng lánh nếu đối tượng được gắn kính hoặc những mẩu kim loại nhỏ. Bóng có thể được biểu thị bằng lập trình, những giải thuật, hoặc bằng “cây đổ bóng” nơi các bóng nhỏ cấu thành được chia nhỏ dần trong mẫu phân cấp, giống như sự biến đổi khơng gian. Cây đổ bóng này có thể hiện, nếu scenegraph cơ bản hỗ trợ những khái niệm cao cấp như vậy, hoặc nó có thể ẩn, như sự trình bày trừu tượng của một số đoạn mã được dịch trước.

Hình 2.10: Cây đổ bóng

Nó quan trọng để nhận thấy rằng cây đổ bóng có thể dễ dàng thay đổi từ nền phần cứng này đến nền tảng phần cứng kia, phụ thuộc vào những khả năng đồ họa và những hệ số khác. Ví dụ, phần cứng nào hỗ trợ ánh xạ va chạm cấp cao trong một quá trình đơn - như nút cây trạng thái trong trường hợp là một nút. Phần cứng khác có thể khơng hỗ trợ ánh xạ bề mặt mấp mô chút nào, nhưng vẫn có thể đạt được những hiệu ứng ánh xạ bề mặt mấp mô bằng một tác động đối với kết cấu, một cho những vùng sáng và một cho những vùng tối. Như vậy cây đổ bóng trong trường hợp đó có thể có một nút cha với ba nút con, đại diện cho ba sự chuyển đổi qua lại. (Ghi chú : ở đây, những cái hộp là những trạng thái và những vòng tròn đang vẽ những đối tượng). Các cây đổ bóng sẽ thay đổi từ phần mềm API đến phần mềm API. Nhưng từ đó phân ra khái niệm Spatial View (khung cảnh có trong khơng gian) từ State View (khung cảnh trạng thái), tạo điều kiện đặt điều khiển giao diện với các API đồ họa cơ sở có thể sử dụng (như Intrinsic Alchemy hay tiêu chuẩn, hay OpenGL hay Direct X).

Pháp tuyến bề mặt hình học sau đó định nghĩa cách đối tượng có khả năng tương tác với ánh sáng đến từ một hướng nhất định bằng cách sử dụng Phong shading hoặc một thuật toán chiếu sáng tương tự. Ánh sáng đi vng góc với một bề mặt có khả năng tương tác nhiều hơn so với ánh sáng song song với bề mặt.

Simulated Bump-Mapping H/W hỗ trợ Bump-Mapping O1 O2 Pass 1: Kết cấu cơ bản Pass 2: Vùng sáng Pass 3: Vùng tối “Bump” O1 O2

Sau khi tính tốn hình học ban đầu, một texture được tô màu thường xuyên được áp dụng cho mơ hình để tạo đối tượng xuất hiện thực tế hơn.

Sau khi kiến tạo, một tính tốn được thực hiện cho mỗi điểm ảnh trên bề mặt của đối tượng.

Thuật tốn tính tốn sự chiếu sáng tương tự trong cảnh tại mỗi điểm ảnh trên bề mặt của đối tượng:

Ở phần này sẽ đề cập chi tiết vào qui trình chiếu sáng trên điểm ảnh được các thư viện đồ họa hiện nay hỗ trợ. Qui trình chiếu sáng trên điểm ảnh chủ yếu phân ra làm 2 công đoạn riêng biệt: thực hiện tính tốn màu chính (diffuse color) và tính tốn màu phản chiếu (specular color).

 Tính tốn màu diffuse (có bump bề mặt bằng normal map) Trước khi đi chi tiết vào thuật toán ta cần xem qua 1 số khái niệm mới dùng trong phần này Không gian tiếp tuyến của vật thể (tangent space). Tọa độ texture tại mỗi đỉnh (vertex) hình thành một hệ trục tọa độ 3 chiều với trục U (tiếp tuyến), trục W (pháp tuyến) và trục V (binormal = U x W). Hệ trục tọa độ này gọi là không gian tiếp tuyến hay không gian texture của vật thể tại các đỉnh(vertex).

 Normal map, Normal map là một texture nhưng có đặc tính khá đặc biệt, thay vì chứa thông tin về điểm màu như texture thông thường, normal map lai chứa thông tin về không gian tiếp tuyến (tangent space) hay không gian texture (texture space) của vật thể, hay nói cách khác nếu các điểm ảnh của texture biểu diễn màu sắc của vật thể tại 1 điểm thì normal map sẽ biểu diễn khơng gian tiếp tuyến của vật thể tại điểm đó. Mỗi điểm ảnh của normal map có định dạng là RGBA trong đó 3 thành phần RGB có giá trị [0..1] được ánh xạ từ 3 trục U, V, W có giá trị trong khoảng [-1, 1]. Normal map có thể tạo ra bằng 2 cách, dùngheight map (texture dạng graycale chứa thông tin độ sâu về bề mặt của vật thể trong đó màu sáng hơn biểu thị độ cao lớn hơn). Cách thứ 2 phức tạp hơn do phải tạo thêm 1 vật thể khác có độ chi tiết cao hơn, sau đó ta so sánh sự khác nhau giữa 2 vật thể để tạo ra normal map (q trình này có thể được thực hiện bằng tool Melody của NVidia).

Hình 2.11: Khơng gian tiếp tuyến

 Bump bề mặt sử dụng normal map, Bump bề mặt chủ yếu được thực hiện trên Pixel Shader cho từng điểm ảnh. Thuật toán này sử dụng giá trị normal trong normal map để xác định mức độ của ánh sáng tác động vào điểm ảnh đó bằng cách nhân tích vơ hướng giá trị normal trên với vector hướng ánh sáng trong khơng gian tiếp tuyến. Sau đó giá trị này được nhân với màu sắc của vertex và màu lấy mẫu từ texture để tính ra màu diffuse (màu của vertex được tính trong Vertex Shader) Trong đó:

- Normal. Vector pháp tuyến (normal vector) tại điểm đó, normal vector có

được do lấy mẫu từ normal map.

- Light vector. Vector hướng ánh sáng trong không gian tiếp tuyến (tangent

space), vector này được tính trong Vertex Shader và được truyền vào Pixel Shader để sử dụng. vertex color. Màu của vertex sau khi thực hiện chiếu sáng trên vertex (pervertex lighting) trong Vertex Shader. Texture color. Màu của texture chính, có được do lấy mẫu texture.

- Tính tốn màu specular (sử dụng specular map), specular map là texture dạng

grayscale, specular map có tác dụng cho biết vùng nào của vật thể phản chiếu nhiều ánh sáng vùng nào phản chiếu ít ánh sáng (tương ứng với màu trong specular map từ sáng tới tối).

- Tính độ phản chiếu của ánh sánh, Độ phản chiếu (phản xạ) của ánh sáng trên

vật thể thì phụ thuộc vị trí của mắt (hay camera). Khi mắt nằm ngay trên đường phản xạ của ánh sáng thì mắt sẽ nhìn thấy một vùng ánh sáng chói do tồn bộ năng lượng của ánh sáng được truyền thẳng vào mắt. Muốn tính màu specular của điểm

U W V

ảnh ta phải xác định được mức độ ánh sáng phản chiếu tại điểm đó. Cơng thức tính vector phản chiếu (phản xạ) như sau:

Hình 2.12: Sự phản xạ của tia sáng trên bề mặt R = 2(L dot N)N - L R = 2(L dot N)N - L

Trong đó:

L. Light vector R. Reflection vector N. Normal

Mức độ phản chiếu của ánh sáng phụ thuộc rất nhiều vào chất liệu bề mặt của vật thể,các bề mặt nhẵn bóng có độ phản chiếu lớn trong khi các bề mặt gồ ghề lại có độ phảnchiếu thấp. Để tránh công việc phải phân rã vật thể ra thành nhiều thành phần để dựng hình với các mức phản chiếu khác nhau người ta dùng specular map như một lookup table để xác định mức độ phản chiếu của ánh sánh trên từng điểm ảnh.

Seflection vector = 2 * dotproduct (normal, light vector) * normal - light vector.

Specular factor = dotproduct (reflection vector, view vector).

Specular color = (specular factor ^ specular constant) * specular lookup.

Trong đó:

- Normal. Vector pháp tuyến (normal vector) tại điểm đó, normal vector có được do lấy mẫu từ normal map.

- Light vector. Vector hướng ánh sáng trong không gian tiếp tuyến (tangent

space), vector này được tính trong Vertex Shader và được truyền vào Pixel Shader để sử dụng.

- View vector. Vector tính từ mắt đến điểm nhìn (tọa độ trong khơng gian tiếp

tuyến), vector này được tính trong Vertex Shader và truyền vào Pixel Shader để sử dụng specular constant. Hằng phản chiếu, giá trị càng lớn thì vùng phản chiếu càng nhỏ.

- Specular lookup. Cho biết mức độ phản chiếu của điểm đó, giá trị này có được

do lấy mẫu từ specular map. Sau khi thêm độ phản chiếu anh sáng vào xe trông như là được cấu tạo từ kim loại, do đó sự phản chiếu góp phần tăng đáng kể chất lượng đồ họa.

Bước 1: Tìm kiếm vị trí trên ảnh raster heightmap mà tương xứng với vị trí trên bề mặt.

Bước 2: Tính tốn pháp tuyến bề mặt của heightmap.

Bước 3: Thêm pháp tuyến bề mặt từ bước 2 tới pháp tuyến bề mặt hình học

miễn là pháp tuyến trỏ tới một hướng mới.

Bước 4: Tính tốn sự tương tác của bề mặt mấp mô mới cùng với ánh sáng

Hình 2.13: Ảnh hoa văn

Kết quả là một bề mặt xuất hiện có chiều sâu thực sự thuật toán cũng đảm bảo rằng sự xuất hiện bề mặt thay đổi như ánh sáng trong cảnh di chuyển xung quanh. Ánh xạ pháp tuyến là kỹ thuật ánh xạ bề mặt mấp mô được sử dụng phổ biến nhất, nhưng có một phương án thay thế khác, chẳng hạn như ánh xạ thị sai.

Đối với mục đích của việc dựng hình trong thời gian thực, ánh xạ bề mặt mấp mô thường được hướng theo như một “sự chuyển tác”, trong việc dựng hình nhiều sự chuyển tác, và có thể được thực hiện như nhiều sự chuyển tác (thông thường là 3 hoặc 4) để giảm số lượng các phép tính lượng giácmàđượcucầu.

Các lập trình viên đồ họa 3D đôi khi sử dụng một chất lượng thấp hơn, kỹ thuật bump mapping nhanh hơn để mô phỏng bump mapping. Một trong những phương pháp sử dụng thay đổi chỉ số texel thay thế cho các pháp tuyến bề mặt thay đổi, thường được sử dụng cho ánh xạ bề mặt mấp mơ '2D'. Kể từ đó các card GeForce 2 lớp kỹ thuật này được thực hiện trong phần cứng tăng tốc đồ họa.

Tồn màn hình ánh xạ bề mặt mấp mơ 2D giả, có thể được thực hiện một cách dễ dàng cùng với một vòng lặp biểu diễn rất đơn giản và nhanh, là một hiệu ứng thị giác phổ biến ánh xạ bề mặt mấp mô được giới thiệu lần đầu tiên.

Ánh xạ bề mặt mấp mơ có hai kỹ thuật chính là: Ánh xạ bề mặt chạm nổi và môi trường ánh xạ bump mapping.

Kỹ thuật Ánh xạ bề mặt chạm nổi

Kỹ thuật này sử dụng các ánh xạ texture để tạo ra các hiệu ứng bump mapping mà không yêu cầu một người biểu diễn tùy chỉnh. Thuật toán nhiều sự chuyển tác này là một sự mở rộng và sàng lọc của việc làm nổi các texture. Quá trình xử lý này nhân đơi ảnh texture đầu tiên, giữ nó trên số lượng mong muốn của bump, làm tối texture bên dưới, cắt ra hình dạng thích hợp từ texture phía trên, và trộn hai texture thành một. Điều này gọi là hai sự chuyển tác chi tiết bề mặt bởi vì nó u cầu hai texture.

Nó thì đơn giản để thực hiện và yêu cầu phần cứng không tùy ý, và bởi vậy được giới hạn bởi tốc độ của CPU. Tuy nhiên, nó chỉ ảnh hưởng ánh sáng khuếch tán, và ảo giác bị hỏng phụ thuộc vào góc của ánh sáng.

2.3.2. Kỹ thuật sử dụng môi trường ánh xạ bump mapping.

Chip Matrox G400 hỗ trợ một texture dựa trên phương pháp chi tiết bề mặt gọi là Environment Mapped Bump Mapping (EMBM). Nó được phát triển chủ yếu bởi BitBoys Oy và được cấp phép cho Matrox. EMBM lần đầu tiên được giới thiệu trong DirectX 6.0.

Radeon 7200 cũng bao gồm phần cứng hỗ trợ cho EMBM, đã được chứng minh trong demo kỹ thuật “Ark của Radeon”. Tuy nhiên, EMBM không được hỗ trợ bởi các chip đồ họa khác chẳng hạn như GeForce 256 của NVIDIA thông qua GeForce 2, chỉ được hỗ trợ Dot-3 BM đơn giản hơn. Nhờ thiếu sự hỗ trợ độ rộng công nghiệp, và its toll on the limited graphics hardware of the time, EMBM only saw limited use during G400's time. Chỉ một vài trò chơi được hỗ trợ tính năng, chẳng hạn như Dungeon Keeper 2 và Millennium Soldier: Có thể phá huỷ được.

EMBM bắt đầu yêu cầu phần cứng cụ thể bên trong chip cho các tính tốn cụ thể của nó, chẳng hạn như Matrox G400 hoặc Radeon 7200. Nó cũng có thể được biểu diễn bởi các shader điểm ảnh có khả năng lập trình được của các máy gia tốc DirectX 8.0 phiên bản cuối cùng giống như GeForce 3 và Radeon 8500.

CHƯƠNG 3

ỨNG DỤNG HIỆN THỊ MƠ HÌNH CHO PATUXAY 3.1. Tổng quan về di tích PATUXAY

Hình 3.1: Khải hồn mơn Patuxay dấu tích một thời kì lịch sử

PATUXAY là một biểu tượng của đất nước LAO , được xây dựng nhằm

tưởng nhớ đến những vị anh hùng dân tộc đã anh dũng ngã xuống để bảo vệ nền độc lập đất nước, trong cuộc kháng chiến chống Pháp trường tồn. Theo thơng tin được biết thì khải hồn mơn được xây dựng từ năm 1962 đến 1968, tuy nhiên cơng trình này chưa hồn thành do một số ngun nhân, phần cũng vì thiếu kinh phí. Với người dân ở nơi đây, khải hồn mơn do như một “bức tranh” thể hiện về một phần lịch sử nghèo khó của dân tộc Lào. Vì thế nó như một lời nhắn nhủ với thế hệ con cháu người Lào, nhìn thấy thực trạng trong quá khứ của dân tộc mà luôn nỗ lực cố gắng phấn đấu trong tương lai.

PATUXAY biểu tượng chiến thắng của người Lào nằm ở cuối đại lộ Thanon

Luang ở phía Đơng Bắc thủ đơ Viêng Chăn. nằm ở giữa trục đường chính của con đường đẹp nhất thủ đô. Du lịch đến nơi đây, dù bất cứ ở đâu bạn cũng có thấy vẻ đẹp xa xa của nó. Nhiều du khách chia sẻ rằng, ở nước Lào khải hồn mơn là địa

điểm lí tưởng để bạn chào đón những ánh nắng của ban mai chiếu rọi và cũng là nơi tuyệt vời để chiêm ngương vẻ đẹp của hồng hơn bng bóng, đêm về. Đó là lúc mà du khách cảm oakley outlet nhận được cái hồn của xứ xở triệu voi này.

Hình 3.2: Patuxay dấu tích một thời kì lịch sử

PATUXAY có nhiều tên gọi khác nhau như đường băng thẳng đứng, con quái

vật bằng xi măng hayChamps Elysée của phương Đơng. Patuxai cao 55m, có 4 mặt, mỗi mặt có bề ngang 24m, gồm bảy tầng tháp và hai tầng phụ, có cầu thang xoắn ốc để đi lên. Du khách du lịch đến đây, theo hình thangh xoắn ốc, du khách đến với 7 tầng của tịa tháp. Khi lên đến đây, khơng gian bao la rộng lớn, trải rộng, vươn dài ra mọi hướng của thủ đô Viêng Chăn xinh đẹp hiện ra trước mắt của du khách. Đây

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu một số kỹ thuật hiện thị mô hình 3d và ứng dụng hiện thị mô hình 3d di tích patuxay (Trang 35)