MỤC LỤC
B ng m t s kí t vi t t tả ộ ố ự ế ắ ......................................................................................2
Ph n m uầ ở đầ ...........................................................................................................3
T ng quan v Webổ ề ...................................................................................................5
Các k thu t d ng hình 3Dĩ ậ ự ....................................................................................13
2.2. Các công tác dựng hình chính............................................................................................14
2.3. Một số khái niệm................................................................................................................15
2.3.1. Tổng quan về các loại mô hình...................................................................................15
2.3.2 Khái niệm về một số chi tiết trong mô hình................................................................20
2.3.3 Khái niệm xây dựng từ phần mềm. .............................................................................24
2.4. Kĩ thuật xây dựng...............................................................................................................26
2.4.1 Vẽ đường cong............................................................................................................26
2.4.2 Tạo surface...................................................................................................................28
2.4.3 Các kĩ thuật tạo kết xuất ..............................................................................................34
S d ng mô hình 3Dử ụ .............................................................................................44
v o trong t o l p Webà ạ ậ ...........................................................................................44
3.1. Các vấn đề đặt ra khi sử dụng các mô hình 3D trong .......................................................44
tạo lập Web.........................................................................................................................44
3.2. Giải pháp ............................................................................................................................44
3.3.1 Tiến trình công việc......................................................................................................46
3.3.2 Sử dụng ngôn ngữ VRML............................................................................................47
3.3.3 Các node cần sử dụng cho hoạt hoá.............................................................................49
3.3.4 Đẩy mô hình lên trang Web.........................................................................................54
K t lu nế ậ ..................................................................................................................59
T i li u tham kh oà ệ ả ................................................................................................61
Bảng một số kí tự viết tắt
Kí hiệu viết tắt Giải thích
CP Control Point: Điểm điều khiển
CV Control Vertex: Điểm điều khiển
DAG Directed Acyclic Graph: Đồ thị mở có định hướng
DG Dependency Graph: Đồ họa phụ thuộc
hình 3D lên trang Web.
Bố cục của khóa luận gồm có 3 chương chính:
Chương 1: Tổng quan về Web
Chương này sẽ giới thiệu bối cảnh chung của sự phát triển của Website và 3D.
Đồng thời cũng giới thiệu qua một số công cụ để xây dựng các mô hình 3D hay sử dụng
hiện nay.
Chương 2: Kĩ thuật xây dựng mô hình 3D
Chương này sẽ giới thiệu một số kĩ thuật xây dựng mô hình 3D và tối ưu các mô
hình đó. Công đoạn xây dựng mô hình sẽ ảnh hưởng đến dung lượng và chất lượng của
mô hình
Chương 3: Áp dụng các mô hình 3D vào trong tạo lập Web
Chương cuối cùng này sẽ đề cập đến các vấn đề nảy sinh khi sử dụng các hình
ảnh 3D trong tạo lập Web và hướng giải quyết các vấn đề đó. Sau đó, sẽ đi sâu vào giới
thiệu cách để đẩy mô hình lên trang Web.
Em hi vọng đề tài này sẽ có giá trị thực tiễn và góp phần phát triển xu hướng xây
dựng các Web3D ở Việt Nam.
Chương 1:
Tổng quan về Web
Con người sáng tạo ra tiếng nói và chữ viết, con người đã trở thành một lực
lượng hùng mạnh thống trị thế giới và thoát ly khỏi cách sống của động vật. Chữ viết là
điều kì diệu để con người thể hiện ý nghĩ và lưu truyền cho nhau. Chữ viết có thể được
lưu trên đá, trên da thú, thanh tre và trên giấy.
Ngày nay, ngoài những văn bản bằng tre hay bằng giấy đó, con người còn có
một phương thức khác để lưu lại vết tích của mình. Đó là văn bản trên máy tính. Máy
tính được chế tạo đầu tiên là nhằm mục đích tính toán nhưng sau này nó còn có thể làm
được nhiều việc khác nữa. Thực ra, cũng như là đá, da thú, thanh tre hay là giấy, máy
tính cũng là chỉ là một phương tiện để con người viết ra những gì mình nghĩ và đề
truyền cho nhiều người khác cùng đọc và nghiên cứu.
Nhưng, sự phát triển của khoa học máy tính và công nghệ thông tin cho phép
cách viết, cách thể hiện thông tin của con người tiến triển thêm một bậc. Cùng với đó,
như: cũng như là địa chỉ nhà để mọi người còn biết để tìm đến.
Địa chỉ như trên còn gọi là URL – Universal Resource Locator.
[4]Web lần đầu tiên được mang ra ngiên cứu vào năm 1980 tại CERN
(European Particle Physics Laboratory) bởi Tim Bernes – Lee viết bằng SGML (
Standard Generalized Markup Language).
Vào đầu những năm 90, World Wide Web phát triển một cách bình lặng. Một
vài trình duyệt UNIX 6 mới chỉ đang tìm hiểu một cách mò mẫm khi Marc Andreessen
của NCSA ( National Center for Supercomputing Applications at the University of
Illinois at Urbana-Champage) phát triển một trình duyệt rất sơ đẳng cho X-windows và
sau đó là Microsoft Windows vào năm 1993. Andreessen sau đó rời khỏi NCSA và mở
một công ty với trình duyệt riêng là Netscape. Web được thương mại hoá vào năm 1994
với chỉ 1500 site tồn tại.
[5][6]Sau đó, HTML đã cho ra khá nhiều các phiên bản nhưng sự phát triển
giữa các phiên bản quả thật là chậm chạp. Năm 1995, HTML 2.0 được phát triển dưới
sự bảo trợ của IETF ( Internet Engineering Task Force) để hệ thống hoá những thành
tựu chung nhất đã đạt được vào cuối năm 1994 của HTML. Tuy không thể nào có một
chuẩn chung cho tất cả các phiên bản của HTML, nhưng từ đó cũng đã tạo ra một hiệu
ứng nho nhỏ trong sự thống nhất giữa các tính năng mới. Và sau đó, với sự cố gắng của
HTML Working Group của WWW Consortium đã thống nhất các thành tựu chung vào
năm 1996 của HTML bằng phiên bản HTML 3.2. Phiên bản mới nhất của HTML đó là
các version của HTML 4. HTML 4 là sự mở rộng của HTML với các hỗ trợ thêm về
nhúng các đối tượng, các kịch bản, các frame v...v
Cái quan trọng để một Website có ý nghĩa chính là các trang Web. Một trang
Web có hai phần là giao diện và mã nguồn. Giao diện là cái để thể hiện thông tin cho
người xem. Còn mã nguồn là một thứ ngôn ngữ có các phương thức để có thể đẩy các
thông tin đó lên. Để xem mã nguồn có thể vào View -> Source.
Ví dụ về giao diện của một trang Web :
Hình 1.1 : Giao diện của trang Web
Ví dụ tiếp theo trình bày về phần mã nguồn của nó.
Hình 1.2: Mã nguồn của trang Web
Vì mục đích sử dụng Website phong phú, mà số lượng Website ngày càng
nhiều, nên yếu tố giao diện bắt mắt là một yếu tố quan trọng hàng đầu. Bởi vì thu hút cái
nhìn của người xem đầu tiên đó chính là diện mạo của một Website như thế nào, sau
mới là chất lượng của nó. Vì thế, thiết kế giao diện đã trở thành môt nghề.
Một Website thông thường, ngoài thể hiện các dòng text theo nhiều kiểu khác
nhau thì phải có xen vào các hình ảnh và âm thanh. Để nhớ một trang thuần văn bản,
hiếm ai nhớ được, nhưng có thêm các hình ảnh để nhận dạng thì ấn tượng để lại mạnh
hơn một bậc. Đó là sức mạnh, là hiệu quả của đồ hoạ
mang lại.
Giá trị của thông tin nằm ở nội dung của Website. Nhưng để người xem tiếp
cận được với các thông tin đó, yếu tố diện mạo của trang Web là vô cùng quan trọng để
giữ chân người xem. Trong một thế giới bùng phát về Website như hiện nay thì làm thế
nào để thu hút được nhiều người đầu tiên phải kể đến diện mạo của Website.
Các yếu tố ảnh hưởng đến diện mạo của Website có thể kể ra đây như sau:
-Màu sắc chủ đạo của Website: Đó là màu nền, màu của các banner, của các
mục trên trang Web. Màu sắc của Website quả thật rất phong phú. Có trang Web chỉ sử
dụng những màu nhạt và sáng như trắng, xanh da trời, hồng nhạt nhưng có những trang
Web lại sử dụng toàn một màu tối như nền đen, nền vàng sậm v..v Thật khó để đánh giá
cái nào đẹp hơn cái nào vì mỗi một người có một gu về màu sắc riêng. Nhưng các nhà
thiết kế giao diện chuyên nghiệp khi sử dụng yếu tố đồ hoạ vào trong trang Web đều
phải luôn quan tâm đến đối tượng phục vụ của Website, mục đích hoạt động của trang
Web, bố cục của trang Web để sử dụng màu sắc cho phù hợp.
-Logo của trang Web: Điều này là cực kì quan trọng, nhất là trong thương mại.
Bởi vì logo là biểu trưng của họ, là cái để khẳng định thương hiệu của họ. Chính vì tầm
quan trọng của nó nên logo của nhà đại diện luôn được đặt ở đầu mỗi trang Web trong
Website, luôn là hình ảnh đầu tiên người xem được nhìn thấy. Thiết kế logo cho trang
Web cũng rất khó để nó vừa độc đáo vừa thể hiện ý nghĩa của trang Web và vừa tránh
sự trùng lặp.
-Các banner, biểu tượng của các mục trong trang Web: Chúng góp phần làm
nên vẻ đẹp của trang Web và đánh dấu để người xem có thể theo dõi các mục, các chủ
nổi tiếng như: Orlando Bloom, BradPitt, EricBana…Bên cạnh những diễn viên chuyên
nghiệp đó là một lực lượng khổng lồ các diễn viên phụ. Với hàng trăm trận chiến, với
hàng nghìn nhân vật và rất nhiều các cảnh quay, nếu đòi hỏi phải “người thật việc thật”
thì sẽ tốn kém rất nhiều. Nhưng các nhà làm phim đã thuê 500 lập trình viên làm việc
liên tục để tạo ra những kĩ xảo tuyệt vời cho bộ phim. Bộ phim quá thành công bởi vì
chi phí không quá lớn nhưng doanh thu thu được thì thực sự là một con số khổng lồ.
Người xem không những cảm nhận được mức độ hoành tráng mà còn thấy thật sự cuốn
hút theo từng phút giây cho những cảm giác rất thực.
Một số các tác phẩm điện ảnh khác như “Chủa tể chiếc nhẫn” , “Chiến tranh
giữa các vì sao”, “Người nhện”… cũng sử dụng các mô hình 3D hỗ trợ trong dàn cảnh.
Một loạt các sản phẩm nổi tiếng khác như: Games và phim “Final Fantasy ”, “Tìm kiếm
Nemo” hay “Gia đình siêu nhân”...cũng góp phần chứng minh mô hình 3D hấp dẫn như
thế nào.
Mô hình 3D đã hiện diện ở khắp nơi: điện ảnh, game, y tế, hàng không v...v và
nay nó đang lan sang một lĩnh vực khác là thiết kế Website. Trên thế giới, ý tưởng
Web3D đã có từ lâu. Từ những năm 1995 người ta đã đề xuất ra ý tưởng này. Nhưng vì
nhiều lý do mà Web3D vẫn chưa thực sự có một chỗ đứng xứng với khả năng mà nó
mang lại. Chỉ gần đây, Web3D mới lại được tìm hiểu rầm rộ. Các thông tin chi tiết hơn
về Web3D được đề cập đến ở Website www.x3d.org
Trên thế giới, Web3D đã là cái tên quen thuộc của nhiều quốc gia như Pháp,
Thuỵ Điển, Mĩ, Nhật Bản. Ví dụ như ở Paris, người ta còn có ý tưởng đưa lên trang
Web những góc phố nổi tiếng để quảng bá cho quê hương họ. Một số hãng lớn như
Toyota, IBM, Samsung đã sử dụng mô hình 3D để quảng cáo. Có thể tham quan một số
Web3D như sau: www.samsung.com ; www.toyota.com
Còn ở Việt Nam, chưa có một Website nào là Web3D thực sự. Nhưng trong
tương lai không xa, sự phát triển các ứng dụng của 3D ở Việt Nam nói chung và Web3D
nói riêng chắc chắn sẽ rất mạnh mẽ. Nếu một ngày nào đó, một Web3D của người Việt
Nam giới thiệu cho cả thế giới biết đến một Hà Nội ngàn năm văn hiến; một cố đô Huế
cổ kính trầm mặc bên dòng sông Hương, bên núi Ngự Bình; một Thánh địa Mỹ Sơn
hoang sơ hùng vĩ, như người Pháp đã dự định làm với Paris của họ thì ý nghĩa sẽ vô
cấp một bộ công cụ và một tập các hành động (tool and action) thì hai phần mềm này
cũng hỗ trợ rất tốt việc giảm dung lượng mô hình bằng nhiều kĩ thuật khác nhau. Các kĩ
thuật này dựa trên việc tính toán lại các điểm điều khiển để giảm dung lượng
dữ liệu.
Với phạm vi của đề tài này, việc thể hiện các công tác dựng hình sẽ được minh
hoạ trên phần mềm Maya ver 7.0. Maya là phần mềm thuộc hãng Alias
(www.Alias.com ). Đây là một phần mềm ra đời sau so với 3D Studio Max nhưng đã
vượt lên ngang tầm bởi một số ưu việt trong hỗ trợ dựng hình 3D và đặc biệt là trong
hoạt hoá các nhân vật.
Trong báo cáo này, để đảm bảo tính chính xác của các thuật ngữ thì một số từ
hay cụm từ như: surface, face, node, isoparm v.v... sẽ không dịch sang tiếng Việt.
2.2. Các công tác dựng hình chính
Qua nghiên cứu các phần mềm dựng mô hình khác nhau cho thấy, nói chung
làm việc trong môi trường 3D có các công tác chính sau:
- Công tác dựng hình (modelling): Đây là phần sử dụng các công cụ dựng hình
để tạo ra các mô hình, chỉnh sửa chúng theo ý muốn. Từ đó các vật thể 3D được định
hình.
- Công tác hoạt hoá nhân vật (animation): gồm những thao tác để gắn nhân
vật vào một tập các khoá (key). Mỗi một khoá đại diện cho vị trí, hình dạng của nhân
vật tại những thời điểm khác nhau. Sự chuyển động của nhân vật là sự thể hiện nhân vật
tại mỗi vị trí khoá này.
- Công tác kết xuất (rendering): Đây là phần để gán vật liệu lên các nhân vật
và tạo kết xuất
Với đề tài này, phạm vi khai thác dừng lại ở tìm hiểu các kĩ thuật dựng hình,
phối hình, phối cảnh và kết xuất. Nên phần việc chính hay sử dụng là modelling và
rendering.
Với phần modelling, khoá luận này sẽ phân tích một số kĩ thuật dựng hình, ứng
dụng của các kiểu dựng hình đó vào thực tế và hiệu quả của nó đem lại.
Với phần rendering, các kĩ thuật tạo ánh sáng (lighting), đổ bóng (shading),
mài nhẵn (smoothing) và áp vật liệu (texturing).v.v sẽ được giới thiệu
tất cả các thứ đó vào với nhau.
Hạn chế của Polygon:
• Trong việc tăng độ phân giải của mô hình, nếu với NURBS thì sẽ tốn một
lượng CVs ít hơn rất nhiều khi ta phải tăng mức chi tiết của một Polygon. Ví
dụ: Một hình cầu NURBS mất 56 CVs, một hình cầu Polygon phải mất 600
đỉnh mới được như NURBS.
• Trong dựng hình, có thể phải liên kết nhiều mesh lại với nhau (polymesh).
Nhưng có thể hành động này lại làm cho một trong các mesh ban đầu bị xoá
đi. Điều đó đòi hỏi phải có sự sao chép các mesh dự phòng trước khi thực hiện
liên kết.
2.3.1.2 NURBS
NURBS là từ viết tắt của Non-Uniform Rational B-Spline. Đây là một kiểu
hình khối bao gồm các đường cong (curves), các mảng ráp (patches), các bề mặt
(surfaces).
NURBS là một tập hợp rộng lớn các đường cong conic, splines và Bezier.
Chúng có khả năng phù hợp đặc biệt trong 3D bởi vì chúng cung cấp tính liên tục rất
hoàn hảo với một lượng tối thiểu các điểm điều khiển (control points).
• Non-Uniform là phần tham số hoá của đường cong. .
• Rational là phương trình hữu tỉ của đường cong. Tính chất này cho phép
NURBS có thể thể hiện các đường conic cũng như các đường cong đa dạng
khác một cách chính xác.
• B-splines là các đường cong đa thức có thể hiện theo tham số.
Điều đặc biệt của NURBS chính là sử dụng các phương trình tham số để biểu
diễn đường cong và các phương trình này phù hợp cho biểu diễn trong 3D.
Sử dụng các mô hình kiểu NURBS khi muốn dựng các bề mặt có độ trơn nhẵn
cao. Ví dụ: hình cầu.
Các đường cong và các surface NURBS có rất nhiều các ứng dụng và được ưa
dùng trong thiết kế công nghiệp và tự động. Đây là những nơi các hình dạng trơn tru với
lượng dữ liệu tối thiểu là yêu cầu đặt ra. Các đường cong NURBS phát huy hiệu quả
trong việc tạo ra đường chuyển động liên tục của một đối tượng được hoạt hoá.
• Với subdivision, có thể tạo ra một đối tượng trơn tru chỉ từ một hình cơ sở ban
đầu và không phải gắn nhiều surface lại với nhau như là đã làm với NURBS.
• Nó cho phép chỉ phải sử dụng các dạng hình học phức tạp ở những vùng đòi
hỏi phải có sự phức tạp.
• Cho phép tồn tại các nếp gấp (các cạnh nhọn) và các hình dạng bất kì không
chỉ các hình 4 mặt.
• Tính liên tục của subdivision còn hạn chế được một số các vấn đề hay xảy ra
khi hoạt hoá với NURBS.
• Có thể liên kết các bề mặt subdivision với phần khung xương(skeleton) ở mức
thô và các hiệu ứng có thể giúp chuyển tiếp lên mức tốt hơn.
Hạn chế của Subdivision:
• Các subivision surface được căn chỉnh không cân xứng có thể cho kết quả
không giống với mong đợi.
• Khi chuyển từ một NURBS surface sang một Subdivision surface có thể tạo ra
các normal không chính xác tại các đầu mút.
• Độ phức tạp và dung lượng dữ liệu có thể sẽ phình to và khó
kiểm soát.
2.3.1.4 Hình không hợp lệ
Hình không hợp lệ là hình mà có các điểm không thuộc một cạnh nào và có các
cạnh không thuộc một mặt nào. Một vài gói phần mềm không chấp nhận một hình
không hợp lệ vì thế cần lưu ý để loại bỏ nó.
2-manifold là một khối hình mà khi ta trải nó trên mặt phẳng thì không có phần
nào nằm chồng chéo lên nhau. Ngược lại với nó là non-manifold. Đó là những hình
không thể nào trải các mặt của nó trên mặt phẳng được.
Hình 2.5: Các kiểu non-manifold
Hình chữ «T « : Đây là 2 mặt chia sẻ một cạnh chung. Đó là một khối hình đa
kết nối.
Hình thứ 2 là hai mặt cùng chia sẻ một điểm duy nhất nhưng không có cạnh
chung.
Hình thứ 3 là hai mặt nối tiếp nhau nhưng có vector trực giao ngược chiều nhau.
Đường cong để biểu diễn cho một biểu thức toán học.Phương trình biểu diễn
đường cong dễ tính toán và biểu diễn trên đồ thị nhất là có dạng:
x = a+bt + ct
2
+ dt
3
+…
y = g+ht + jt
2
+ kt
3
+…
Dạng biểu diễn này tiện lợi và phù hợp với tính chất 3 chiều của mô hình.
Các đường cong bậc càng cao thì càng phức tạp và càng đòi hỏi nhiều khối lượng
tính toán. Vì thế để biểu diễn các đường này thì người ta đã nghĩ ra cách phân đoạn. Có
nghĩa là đường cong phức tạp được phân ra thành từng đoạn. Mỗi đoạn lại là một đường
cong nhưng có bậc nhỏ hơn. Điểm giao của các đoạn tạo ra đường cong đó người ta gọi
là edit points, còn mỗi đoạn đó người ta gọi là segment hay là span.
Tuy nhiên không phải lúc nào các đường cong bậc cao cũng phải giảm bớt bậc
của nó đi. Những đường cong bậc tầm 5 đến 7 có lợi là cho đường cong có vẻ trơn tru
hơn và có độ căng. Chúng thường được sử dụng trong thiết kế tự động (automotive
design).
Bậc của đường cong cũng xác định độ trơn của các điểm nối giữa các span:
Đường bậc 1 (linear): các đường cong chỉ việc đặt ở các vị liên tiếp nhau.
Đường bậc 2 (squadratic): các đường cong đặt tiếp xúc với nhau
Đường bậc 3 (cubic): các độ cong liên tiếp với nhau.
-Bậc(degree): Đây là khái niệm để chỉ một span thì có bao nhiêu CV.
Đường bậc 1: là các EP đặt thẳng hàng
Đường bậc 2: Có một phần cong giữa các EP.
Các bề mặt thì có nhiều bậc theo chiều dài và chiều rộng. Có thể chiều
không làm thay đổi hình dạng của đường cong bằng các CV, dễ gây đổ vỡ hình khối và
tăng dung lượng.
c Các Surface
Tạm dịch là bề mặt. Trong dựng hình, surface là một tập các đường cong liên
kết với nhau.
Trong tạo kết xuất, surface là một lớp bao phủ đối tượng để xác định xem đối
tượng đó sẽ phản xạ ánh sáng như thế nào. Có thể bề mặt chỉ có một màu nào đó, hoặc
có thể là một mẫu vật liệu, một vỏ xù xì, hoặc trơn nhẵn.
Một số thành phần của surface:
- Isoparm: viết tắt từ cụm từ isoparametric curve. Đó là một đường cong
nằm trên surface hay ở một EP có giá trị U hoặc V là hằng số.
- Đường cong trên bề mặt (curve-on-surface): Là một loại đường cong nằm
trong một vùng tham số nào đó của đường cong. Curve-on-surface thường được sử dụng
để cắt tỉa surface.
Một đối tượng đồ hoạ là một tập các surface. Có hai kĩ thuật hiển thị của surface
là dạng đổ bóng (shaded surface)và dạng khung (wireframe).
- Shaded surface: Một kĩ thuật hiển thị cho phép một đối tượng hình học được
trình bày ở dạng đổ bóng kín một bề mặt.
- Wireframe: Một kĩ thuật hiển thị cho phép một đối tượng hình học được trình
bày ở dạng là một tập các đường là khung của mô hình.
2.3.3 Khái niệm xây dựng từ phần mềm.
a. Node
Chương trình được trình được tạo từ các node. Để có được một khung cảnh,
một hệ thống các node được sinh ra và tương tác với nhau. Các node này có các tập
thuộc tính (attribute) tạo ra tính chất riêng của node. Tập thuộc tính của node này có
thể làm đầu vào cho một node khác, tạo ra mối quan hệ giữa các node. Từ mối quan hệ
này mà các đối tượng trong khung cảnh được xây dựng lên
b. Các phương pháp đồ hoạ
• Đồ hoạ phụ thuộc – Dependency Graph:
Tạm dịch là đồ hoạ phụ thuộc.Đồ hoạ phụ thuộc là một trong 2 cách thể hiện
màu RGB (Red, Green, Blue) để phân biệt các trục này.
Hệ toạ độ thường được gắn vào bộ công cụ dịch chuyển của phần mềm để làm
việc với các thuộc tính của transform-node.