Một trong những trọng tâm của đề tài là mô phỏng các thí nghiệm hoá học trong sách
giáo khoa của trung học cơ sở. Các thí nghiệm này được mô phỏng như trong một phòng
thí nghiệm ảo, với các dụng cụ thí nghiệm được mô phỏng như trong thực tế. Các dụng
cụ thí nghiệm có rất nhiều loại, nhưng chiếm một phần không nhỏ là các dụng cụ có chất
liệu thuỷ tinh. Phần dưới đây chúng tôi xin trình bày qui trình tạo các dụng cụ này và
phương pháp tạo chất liệu thuỷ tinh để áp lên các dụng cụ đó.
74 trang |
Chia sẻ: lylyngoc | Lượt xem: 2788 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Báo cáo Tham luận hội thảo “ Ứng dụng công nghệ Multimedia trong giáo dục đào tạo”, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c như nguồn sáng trong thế giới thực.
Hiệu ứng chiếu sáng toàn cảnh phụ thuộc vào chất liệu và các thuộc tính bề mặt, do đó
các đối tượng trong khung cảnh cần phải được mô hình hóa một cách chính xác và xác
định giới hạn không gian đường biên trước khi tạo ánh sáng toàn cảnh.
Hình 12. Sử dụng nguồn sáng tạo hiệu ứng sáng chói
Ánh sáng toàn cảnh (Radiosity) là nguồn sáng đã được phản chiếu lên các đối tượng
khác. Khi sử dụng sự ánh sáng toàn cảnh, số lượng nguồn sáng bao quanh trong cảnh
tăng lên, màu sắc của một đối tượng có thể ảnh hưởng tới các đối tượng khác. Ánh sáng
40
toàn cảnh cung cấp một mô hình các hiệu ứng ánh sáng như trong thế giới thực. Có ba
cách tạo ánh sáng toàn cảnh [3]:
- Sử dụng chất liệu Advanced Lighting Override nhằm tăng tính hiện thực của
của các chất liệu tự chiếu sáng.
- Sử dụng ánh sáng trắc quang trong hiệu ứng ánh sáng toàn cục cho một cảnh ở
ngoài trời hoặc áp dụng Skylight và light tracing để xuất một cảnh ngoài trời.
- Kết hợp hiệu ứng Daylight và radiosity để xuất một cảnh ngoài trời với các
mức độ ánh sáng tự nhiên khác nhau.
Kết luận
Nhóm cán bộ Viện Công nghệ thông tin, Đại học Quốc gia Hà nội đã áp dụng các
phương pháp tạo ánh sáng trên trong việc xây dựng phần mềm mô phỏng thí nghiệm ảo
cho ba môn học cấp trung học cơ sở, thuộc các môn vật lý, hóa học và sinh học. Các thí
nghiệm cho thấy (i) màu sắc toàn cảnh thí nghiệm tự nhiên, chân thực; (ii) các đối tượng
hoặc hiện tượng cần nhấn mạnh trong thí nghiệm được thể hiện một cách sinh động, trực
quan; (iii) đảm bảo tính chính xác, tính sư phạm và nội dung khoa học trong các bài thí
nghiệm.
Các phương pháp tạo ánh sáng trên chưa thể coi như chuẩn. Trong quá trình xây dựng
thí nghiệm ảo, chúng tôi cần kết hợp bước tạo ánh sáng với các qui trình tạo hiệu ứng 3
chiều khác nhằm tạo ra sản phẩm thí nghiệm ảo hoàn thiện hơn.
Tài liệu tham khảo
[4]. Huỳnh Văn Đức, Nguyễn Quốc Cường, Hoàng Đức Hải, Đồ học vi tính, Nhà
XB Giáo dục, 1999, tr 232-244.
[5]. Lưu Triều Nguyên, Nguyễn Việt Dũng, Thiết kế 3 chiều với 3D Studio MAX,
Nhà XB Giáo dục, 2000, tr 298-325.
Hình 13. To ánh sáng cho toàn cnh
41
[6]. 3ds max user reference volume 3, Singapore, 12807-010000-5530A, 2001, pp.
415-478.
[7]. Erick Vera, Todd Bogdan, Brian Wagner, Ales Holecek, John Terrell, Josh
Bates, Ken Musgrave, Sam Coroniti, Ian Gilman, Paul Cattrone, Michael Herf,
Maria Giannakouros and Moe Doucet - MetaCreations Bryce 4, 6303
Carpinteria Avenue Carpinteria, CA 93013
[8]. Erick Vera- Bryce 3D User Guide - MataCreations Corporation, P.O.Box 66959,
Scotts Valley, CA 95067-6959, (408) 430-4000.
[9]. R. Shamms Mortier - The Bryce 3D Handbook - United States of America
[10].
[11].
[12].
[13].
[14].
[15].
42
MỘT SỐ MODULE ĐIỀU KHIỂN TƯƠNG TÁC GIỮA CÁC ĐỐI
TƯỢNG BẰNG LINGO.
Phạm Thị Huế
Phòng Đa phương tiên, Viện Công nghệ thông tin – Đại học Quốc gia Hà Nội
1. Giới thiệu:
Ngày nay, việc áp dụng tin học vào các lĩnh vực đời sống ngày càng trở lên phổ biến,
đặc biệt việc áp dụng công nghệ multimedia nhằm nâng cao chất lượng giáo dục đào tạo.
Sự ra đời của sách điện tử, của những chương trình mô phỏng với hình ảnh và âm thanh
trực quan, hấp dẫn đã làm thay đổi hẳn phương thức học tập, tiếp cận cái mới của người
học.
Một trong những công cụ chuẩn để tạo ra những sản phẩm multimedia được sử dụng
nhiều trên thế giới hiện nay là công cụ Macromedia Director. Ngoài việc tích hợp âm
thanh, hình ảnh, tạo ảnh động và các hiệu ứng chuyển cảnh, Director còn cho phép tạo ra
các sản phẩm tương tác(interactive multimedia) cực kỳ linh hoạt, đáp ứng sự kiện chủ
động của người dùng.
Trong đề tài “Mô phỏng thí nghiêm ảo”, chúng tôi đã sử dụng Director với mục đích
tạo ra các phầna mềm tương tác như đã nói trên. Sau đây xin được nêu ra một số module
chủ yếu. Các module này đều nhằm giải quyết các bài toán cụ thể của đề tài:
Bài toán xác định điện trở của bóng đèn.
Bài toán tìm ảnh của vật qua thấu kình hội tụ.
2. Xây dựng module điều khiển tương tác bằng Lingo trong Director:
2.1 Tổng quan chung về lập trình Lingo
Lingo, ngôn ngữ lập trình script , dùng để tạo các tương tác cho các sản phẩm media
trong Director. Với Lingo, ta có thể hoàn toàn có thể điều khiển các đối tượng hình ảnh,
âm thanh tạo nên những hiệu quả bất ngờ. Cái hữu ích nhất mà Lingo mang lại là làm cho
sản phẩm media trở nên mềm dẻo, đáp ứng được các sự kiện cụ thể do người dùng chủ
động đặt ra. Chẳng hạn: việc tạo ra các hiệu ứng hoạt hình, các định dạng văn bản, trả lời
các sự kiện chuột hoặc bàn phím trở nên dễ dàng hơn. Với Lingo, sự xuất hiện của các
đối tượng trên khung hình gần như độc lập về thời gian và thứ tự lớp, người dùng sẽ
quyết định cái gì sẽ xuất hiện và xuất hiện tại thời điểm nào.
43
Director sử dụng 4 loại script khác nhau: behavior, movie script, parent script và script
gắn với cast member. Ba loại script đầu đều xuất hiện như là các đối tượng trên cửa sổ
cast member. Behaviors là một số hàm mà Director đã cung cấp sẵn, ta có thể sử dụng
đơn giản bằng cách kéo thả nó vào đối tượng hoặc khung hình muốn điều khiển. Ta cũng
có thể sửa đổi các behavior có sẵn này thành hàm của riêng mình.
Sau đây ta sẽ liệt kê một số hàm sẽ được dùng trong các module.
Một số lệnh liên quan đến xử lý ảnh:
• Image Object ( Đối tượng Image): Là một dữ liệu bitmap cơ bản mà ta có thể khởi
tạo và chứa nó trong một biến nhớ:
i = image(width, height, depth)
• Draw ( thủ tục vẽ): Draw là một phương thức được dùng để vẽ một đường thẳng
hoặc một hình chữ nhật lên đối tượng ảnh imageObject. Màu sắc của hình vẽ
được xác định bởi colorObject.
imageObject.draw(x1, y1, x2, y2, colorObject)
imageObject.draw(point(x, y), point(x, y), colorObject)
imageObject.draw(rect, colorObjectt)
• Fill: Dùng để đổ màu cho hình chữ nhật trên đối tượng ảnh imageObject
imageObject.fill(left, top, right, bottom, colorObjectOrParameterList)
imageObject.fill(point(x, y), point(x, y), colorObjectOrParameterList)
imageObject.fill(rect, colorObjectOrParameterList)
Một số lệnh liên quan đến mảng:
• Khai báo một mảng với số phần tử không biết trước:
Mảng tuyến tính: NameOfList=[]
Mảng thuộc tính: NameOfList=[:]
Chú ý: các phần tử của mảng tuyến tính không nhất thiết phải cùng kiểu.
• DeleteOne (xoá một phần tử khỏi mảng)
list.deleteOne(value)
deleteOne list, value
44
• Add: thêm một phần tử vào mảng
linearList.add(value)
add linearList, value
2.2 Bài toán xác định điện trở của bóng đèn.
Bài toán 1: cho trước các linh kiện mạch điện: bóng đèn, vôn kế, ampekế, nguồn điện,
khoá đóng mở mạch điện, dây dẫn điện. Tiến hành mắc mạch điện và đo điện trở bóng
đèn.
Giải quyết bài toán bằng Director:
Phân tích:
Việc thực hiện bài toán trong phòng thí nghiệm thực không có gì khó khăn, tuy nhiên,
trong một thí nghiệm ảo, ta cần biết nên sử dụng những đối tượng nào làm linh kiện để
việc lắp mạch và đo điện trở hiệu quả nhất.
Các linh kiện mà hình dạng không thay đổi như: nguồn điện, ăm pe kế, vôn kế, bóng đèn
được xem như những đối tượng ảnh (ImageObject) được chèn vào như các castmember.
Riêng dây dẫn: do đặc tính của dây dẫn là có đường đi, độ dài ngắn do người sử dụng quy
định lúc mắc mạch nên thay vì dùng một hình ảnh có sẵn, ta sẽ sinh ra dây dẫn ngay lúc
người dùng nối dây bằng chuột. Như vậy để lưu lại được đường đi của dây dẫn, ta cần
một mảng để lưu toạ độ chuột đi qua.
Xây dựng:
Nhập (Import) ảnh các linh kiện vào castmember rồi đặt chúng lên cửa sổ Score như sau:
Giao diện như hình dưới:
45
Module khởi tạo các giá trị khi movie bắt đầu chạy:
global nguon, ampe, volt , N_am,
N_duong, A_am,A_duong,V_am,
V_duong, den, khoa, den1, dotlist,
mylist, nut
global E, R, rt, ra, rv global I, U, ss
global dotlist, canvasImg, dsListID
on startmovie
dotlist=[]
canvasImg=member("test").image
dsListID=[]
repeat with i=1 to 16
sprite(i).visible=false
end repeat
dau=7
cuoi=16
nut=[]
j=1
repeat with i=dau to cuoi
temp=[:]
addProp temp, #sp, sprite(i)
addProp temp,#listnut, []
addProp temp,#id, i-6
addProp temp,#listID,[]
addProp
temp,#listdot,[[],[],[],[],[],[],[],[],[],[]]
nut[j]= temp
j=j+1
end repeat
den= sprite(4)
khoa= sprite(5)
N_duong= sprite(7)
N_am= sprite(8)
V_duong= sprite(9)
V_am= sprite(10)
A_duong= sprite(11)
A_am= sprite(12)
khoa1= sprite(13)
t1=0
E=0
ra=0.01
rv=10000
rt=0.02
R=3
I=0
U=0
end
Các biến dùng chung được khai báo sau từ khoá Global:
Tên biến Mục đích sử dụng
Dotlist Là một danh sách tuyến tính, lưu trữ các điểm trên đường vẽ khi người
dùng tiến hành nối dây giữa các cực linh kiện.
46
Nut Là danh sách thuộc tính, trong đó mỗi phần tử lưu trữ các thông số về một
nút (cực) của linh kiện. Chú ý rằng khi mắc mạch điện, tình trạng hiện thời
của mạch hoàn toàn phụ thuộc vào trạng thái của các nút (cực điện).
Sp: layer chứa nút.
Listnut: danh sách các nút được nối với nút hiện tại.
Listdot:Là một danh sách tuyến tính, lưu trữ các điểm trên đường vẽ khi
người dùng tiến hành nối dây giữa các cực linh kiện.
canvasImg Dùng để lưu trữ đối tượng ảnh mà trên đó ta sẽ vẽ đường dây nối.
Module hiển thị một linh kiện:
property mysprite, dau1, dau2, kim
property bt1, bt2, dc
on mouseup me
if not(cam) then
if mysprite.visible then
mysprite.visible= 0
dau1.visible=0
dau2.visible=0
sprite(me.spritenum).member=bt1
if kim 0 then
sprite(kim).visible=0
end if
else
mysprite.visible= 1
dau1.visible=1
dau2.visible=1
sprite(me.spritenum).member=bt2
mysprite.member=dc
if kim 0 then
sprite(kim).visible=true
end if
end if
end
on getPropertyDescriptionList me
return \
[ \
#mysprite: \
[ \
#comment: "dc hien thi:", \
#format: #sprite, \
#default: sprite(1) \
],\
#dau1:\
[ \
#comment: "dau1 hien thi:", \
#format: #sprite, \
#default: sprite(7) \
],\
#dau2:\
[ \
#comment: "dau2 hien thi:", \
#format: #sprite, \
#default: sprite(8) \
],\
#kim:\
[ \
#comment: "kim hien thi:", \
#format: #integer, \
#default: 25 \
],\
#dc:\
[ \
#comment: "member dc:", \
#format: #member, \
#default: member("nguonthat1") \
],\
#bt1:\
[ \
#comment: "member bt cua nut dc1:", \
47
#format: #member, \
#default: member("nguon1") \
],\
#bt2:\
[ \
#comment: "member bt cua nut dc2:", \
#format: #member, \
#default: member("nguon1-2") \
]]
end
Module này gồm 2 script: mouseup và getPropertyDescriptionList.
Để script mouseup có thể sử dụng với nhiều linh kiện khác nhau, thay vì khai báo
các biến, ta sử dụng thuộc tính (property) để khai báo thông số về đối tượng ngay khi ta
kéo thả module vào đối tượng.
Script mouseup đáp ứng lại thao tác nhả chuột của người dùng. Khi người dùng
nhả chuột, thì một linh kiện, chẳng hạn vôn kế (mysprite) sẽ hiển thị trên màn hình, cùng
với vôn kế là 2 cực âm – dương mà ta dùng 2 biến dau1, dau2 để lưu cũng hiển thị. Tiếp
đó, nếu linh kiện này có kim đo (kim) thì ta hiển thị kim đo. Lệnh hiển thị rất đơn giản:
Mysprite.visible=1
Script getPropertyDescriptionList: định dạng giá trị khởi tạo, kiểu giá trị cho các
thuộc tính đã khai báo ở trên.
Module nối dây:
……..
Đây là module được xây dựng theo phương pháp hướng đối tượng. Đầu tiên ta tạo
ra một đối tượng đoạn thẳng, gán thuộc tính (me, mate, myID) và phương thức (Draw,
Draw1) cho nó: Phương thức Draw() vẽ một đoạn thẳng màu đỏ nối giữa hai điểm do đối
tượng me và mate lưu trữ. Phương thức Draw1() vẽ một đoạn thẳng trùng màu với màu
nền nối giữa hai điểm do đối tượng me va mate lưu trữ, đây là một thủ thuật để gỡ bỏ dây
nối khi điều kiện nối không hợp lệ.
Trên đây chỉ là một số những đoạn mã cơ bản, để nắm được ý nghĩa của các biến
và chức năng của các module ta cần tham khảo thêm toàn bộ chương trình “Xác định
điện trở” của đề tài.
2.3 Bài toán tìm ảnh của vật qua thấu kình hội tụ.
Bài toán 2: Cho một vật AB đặt trước một thấu kính hội tụ. Xác định vị trí và kích thước
của ảnh tạo bởi thấu kính khi người dùng thay đổi vị trí của vật AB.
48
Phân tích:
Tương tự như bài toán 1, ở đây ta sử dụng các đối tượng ảnh sau: vật AB, ảnh
A’B’, thấu kính.
Đường đi của tia sáng và tia khúc xạ của nó sinh ra khi cùng thao tác di chuyển
vật AB của người dùng.
Chú ý: có thể biểu diễn mỗi tia sáng bằng một đối tượng ảnh, xong việc này có
thể tạo ra hiệu quả hình ảnh không như mong muốn: khi vị trí vật thay đổi, kéo theo góc
lệch của tia sáng cũng như độ dài của chúng thay đổi theo, việc một đối tượng ảnh bị co
dãn hoặc bóp méo sẽ làm vỡ hình.
Như vậy, ta qui bài toán ban đầu về bài toán: vẽ các đoạn thẳng mà các điểm đầu
mút của chúng được cho như hình vẽ. Giá trị tọa độ của các đầu mút này được xác định
qua các thông số và công thức về thấu kính.
Xây dựng:
Sau đây là toàn bộ mã nguồn của module giải quyết bài toán:
i.
- 49 -
global f, d, d1, h, thaukinhH, diem,
diem1, diem2
property obj, img, tiass, tiatam, tiaF,
thaukinh, gh, x, nen
property pmove
on beginsprite me
gh=sprite(25)
obj=sprite(23)
nen= sprite(20).member.image
obj.constraint=gh
img= sprite(24)
thaukinh=sprite(22)
obj.moveablesprite=true
end
on mousedown me
pmove=1
end
on mouseup me
pmove=0
end
on mouseupoutside me
pmove=0
end
on exitframe
if the mousedown then
if pmove then
t= the mouseh
if t< gh.left then t=gh.left
if t> gh.right then t=gh.right
obj.loch=t
objh= obj.loch
d=thaukinhH-objh
if d f then
d1= integer((d*f).float/(d-f))
x=integer((h*f)/abs(d-f))
--lay khoang cach tu right, left thau
kinh den tam
a= thaukinh.right-thaukinhH
b=thaukinhH-thaukinh.left
x1=h*a/d
x2=(h*(a-f)).float/f
diem[3]= sprite(22).loc +point(0,
x)
diem1[2]= sprite(22).loc + point(a,
x1)
diem1[3]= sprite(22).loc
+point(a,x)
if d1>0 then
img.member=member("image")
ve1()
else
img.member=member("image1")
ve2()
end if
end if
end if
end if
end
on ve1
t=obj.loc-point(0,obj.height/2)
nen.fill( nen.rect, rgb(255,255,255))
repeat with i=1 to 2
member("nenve").image.draw(t,
diem[i],[#shapeType:#line, #lineSize:1,
#color: rgb(255,255,0)])
member("nenve").image.draw(
diem[i], diem1[i],[#shapeType:#line,
#lineSize:1, #color: rgb(255,255,0)])
end repeat
if diem[3][2]<= thaukinh.bottom-7
then
member("nenve").image.draw(t,
diem[3],[#shapeType:#line, #lineSize:1,
#color: rgb(255,255,0)])
member("nenve").image.draw(
diem[3], diem1[3],[#shapeType:#line,
#lineSize:1, #color: rgb(255,255,0)])
end if
sprite(24).loch= sprite(22).loch+d1
sprite(24).locv= thaukinh.locv+x/2
sprite(24).height = x
sprite(24). width =
sprite(23).width*d1/d
i.
- 50 -
end
on ve2
sprite(24).loch= sprite(22).loch+d1
sprite(24).locv= thaukinh.locv-x/2
sprite(24).height = abs(x)
sprite(24). width =
sprite(23).width*abs((d1).float/d)
t=obj.loc-point(0,h/2) --point(0,h)
t1=sprite(22).loc
t2=t1+ point(f, 0)
nen.fill( nen.rect, rgb(255,255,255))
repeat with i=1 to 2
member("nenve").image.draw(t,
diem[i],[#shapeType:#line, #lineSize:1,
#color: rgb(255,255,0)])
member("nenve").image.draw(
diem[i], diem1[i],[#shapeType:#line,
#lineSize:1, #color: rgb(255,255,0)])
end repeat
t= thaukinh.loc+point((d1).integer, -
(x).integer)
member("nenve").image.draw(
diem[1], t,[#shapeType:#line,
#lineSize:1, #color: rgb(0,0,255)])
member("nenve").image.draw( obj.loc-
point(0,h/2), t,[#shapeType:#line,
#lineSize:1, #color: rgb(0,0,255)])
end
Việc chủ yếu phải làm ở đây là xác định tọa độ của các đầu mút đoạn thẳng và lưu
chúng vào 2 mảng tuyến tính diem() và diem1(). Việc vẽ đường đi của tia sáng không có
gì khó khăn sau khi chúng ta đã xác định được các tọa độ trên.
Một điều cần lưu ý ở đây là: do sự thay đổi các thông số vừa phụ thuộc liên tục vào
thời gian, vừa liên quan đến sự kiện người dùng nhấn chuột nên nhất thiết các lệnh tính
tọa độ phải đặt trong hàm sự kiện ExitFrame, và điều kiện kiểm tra là the mousedown.
KẾT LUẬN
Trong báo cáo này chúng ta đã tìm hiểu một số lệnh, hàm chủ yếu của ngôn ngữ lập
trình Lingo nhằm tạo các tương tác với các đối tượng đồ họa. Những module này đã được
cài đặt và kiểm thử, kết quả là hiệu ứng được tạo ra rất tốt.
Ngày nay, việc ứng dụng công nghệ multimedia để xây dựng các bài giảng điện tử
ngày càng trở nên phổ biến, việc thêm các tương tác vào bài giảng là rất cần thiết để đảm
bảo chất lượng cho các bài giảng . Lingo là một ngôn ngữ đủ mạnh và không quá khó để
tạo những tương tác như thế.
Bên cạnh Lingo và Director còn có rất nhiều công cụ có hỗ trợ chức năng tạo script
nhằm nâng cao hiệu quả của chương trình và giảm thiểu các thao tác thủ công như Flash,
3DMax, Authorware, …Tùy theo yêu cầu cụ thể của bài toán đặt ra mà ta lựa chọn công
cụ tạo tương tác phù hợp, tuy nhiên chúng ta vẫn nên sử dụng Director để tích hợp các dữ
liệu tạo nên sản phẩm cuối cùng.
i.
- 51 -
QUY TRÌNH TẠO CÁC ĐỐI TƯỢNG 3 CHIỀU
BẰNG PHẦN MỀM 3DSMAX
Phạm Thanh Nam
Viện Công nghệ thông tin – Đại học Quốc gia Hà Nội
1. Giới thiệu chung về phương pháp tạo đối tượng (tạo mô hình)
Kỹ thuật tạo mô hình là một trong các kỹ thuật cơ bản và quan trọng nhất của đồ hoạ 3
chiều, nếu chúng ta tạo được một mô hình tốt là chúng ta đã hoàn thành một nửa công
việc. Trong công việc tạo đồ hoạ 3 chiều thì kỹ thuật tạo mô hình chiếm nhiều thời gian
nhất và thường thì rất khó tạo được một mô hình hoàn hảo, do đó công việc tạo mô hình
thường kéo dài cho đến các giai đoạn sau. Ta có thể hình dung dễ dàng hơn công việc này
bằng cách tham khảo biểu đồ công việc trong quá trình tạo đồ hoạ 3 chiều sau:
• Tạo đối tượng (create object)
• Sửa đổi đối tượng (edit object)
• Thêm bề mặt và chất liệu (add serface)
• Thêm ánh sáng (add lighting)
• Đặt vị trí camera (place camera)
• Tạo chuyển động (animate)
• Thể hiện (render the scene)
Vậy thế nào là kỹ thuật tạo mô hình? Kỹ thuật tạo mô hình (Modeling) là kỹ thuật tạo
ra các khung dựng của các đối tượng, ta có thể tưởng tượng giai đoạn này là quá trình tạo
ra khung xương cho cơ thể một con người, sau đó nhờ các kỹ thuật thể hiện (Rendering)
để thêm da thịt cho con người đó, và tiếp theo là nhờ kỹ thuật tạo hoạt hoạ (animation) để
tạo hoạt động cho người. Ta có thể hiểu rõ công việc của từng giai đoạn bằng các hình
ảnh minh hoạ sau:
Khung dùng cña mét qu¶ bãng,
®−îc t¹o ra sau b−íc t¹o m« h×nh
Qu¶ bãng sau khi ®·
qua b−íc thÓ hiÖn
H×nh 1: so s¸nh 2 qu¸ tr×nh t¹o m« h×nh vµ thÓ hiÖn
i.
- 52 -
2. Các kỹ thuật tạo đối tượng
Trong đồ hoạ 3 chiều có các kỹ thuật tạo đối tượng sau:
• Primitive và Boolean operation
• Extrution
• Lathe
• Polygon mesh
• Parametric serface
• Meta ball
• Particle system
• Fractal modal
• Physical model
Cho đến nay người ta vẫn đang tiếp tục nghiên cứu và phát triển để có thể tạo ra các
phương pháp đơn giản hơn và hiệu quả hơn trong việc xây dựng mô hình các đối tượng
trong không gian 3 chiều. Nhất là trong các lĩnh vực Multimedia, điện ảnh, phim nổi...
3. Áp dụng các phương pháp tạo đối tượng trong 3ds Max cho đề tài
Phần mềm 3ds Max là một phần mềm 3 chiều chuyên nghiệp có sức mạnh lớn, nó
cung cấp cho chúng ta hầu hết các phương pháp tạo đối tượng cũng như thể hiện đối
tượng. Chính vì vậy chúng tôi chọn 3ds Max làm công cụ để tạo các đoạn phim mô
phỏng trong đề tài.
Mỗi phương pháp tạo đối tượng trong 3ds Max đều có các ưu nhược điểm riêng và
phù hợp với từng loại đối tượng, với từng trường hợp khác nhau. Điều quan trọng nhất là
chúng ta chọn đúng được phương pháp thì sẽ giúp chúng ta tiết kiệm được nhiều thời
gian và đạt được hiệu quả cao hơn. Ngoại trừ một số các đối tượng rất đơn giản thì chúng
ta có thể sử dụng một phương pháp để tạo, còn đa số các đối tượng thường được tạo ra
bằng cách kết hợp một số phương pháp nhất định.
Trong phần Các thí nghiệm hoá học chúng ta cần phải xây dựng một phòng thí
nghiệm ảo để người sử dụng có thể thực hiện các thí nghiệm hoá học. Do đó chúng ta cần
phải tạo ra rất nhiều các đối tượng vừa đơn giản vừa phức tạp
Các đối tượng đơn giản: các dụng cụ thí nghiệm: thường là cốc, chai, lọ, ống
nghiệm, đèn cồn (hình 2)… đều là các đối tượng đơn giản nên có thể dùng các đối tượng
cơ bản được 3ds max cung cấp sẵn, sau đó sử dụng phương pháp chuyển đối tượng sang
dạng lưới (edit mesh) để sửa đổi cho phù hợp.
i.
- 53 -
Hình 2: Các dụng cụ thí nghiệm hóa học
Các đối tượng phức tạp: các chất hoá học, các hiện tượng tác dụng… thường là các
bọt khí, khói, nổ, cháy… các đối tượng này bao gồm rất nhiều các phần tử rất nhỏ, do đó
cần sử dụng các đối tượng dạng hệ thống hạt (particle system) để tạo, sau đó điều chỉnh
các thông số cho phù hợp với yêu cầu.
Hình 3: Các đối tượng phức tạp
3.1 Phương pháp tạo đối tượng đơn giản
Các đối tượng đơn giản thường có hình dáng tương tự như các đối tượng gốc được
cung cấp trong 3ds Max, vì vậy chúng ta có thể sử dụng 3 loại đối tượng cơ bản của 3d là
đối tượng hình cầu (sphere), hình trụ (Cilynder) và hình hộp (box) để tạo
Cilynder: sử dụng để tạo các đối tượng có chu vi là hình tròn và có chiều cao như cốc
thuỷ tinh, ống nghiệm, lọ đựng dung dịch...
Box: sử dụng để tạo các đối tượng có góc cạnh như bàn thí nghiệm, cân, các thanh
gỗ…
Sphere: sử dụng để tạo các đối tượng có các bộ phận hình cầu, tròn như đèn cồn…
Cách tạo:
i.
- 54 -
Để tạo các dụng cụ thí nghiệm là ống nghiệm, lọ đựng hoá chất, cốc thuỷ tinh…chúng
ta chỉ cần sử dụng một đối tượng Cylinder. Sau khi đưa đối tượng vào khung nhìn Top
view, chúng ta chuyển sang tab modify để thiết lập một số thông số cơ bản cho Cylinder.
Các thông số đó là:
Radius: xác định bán kính hình trụ
Height: xác định chiều cao hình trụ
Sides: xác định số phần chia theo chu vi hình trụ
Cap segment: xác định số vòng
Height segment: xác đinh số phần chia theo chiều dài
Trong đó bán kính và chiều cao chúng ta thiết lập tuỳ theo yêu cầu về kích thước của
đối tượng, giá trị này có thể sửa đổi bất cứ lúc nào. Cần chú ý đến giá trị xác định số phần
chia theo chu vi và chiều cao, các giá trị này sẽ tỷ lệ với số lượng các điểm chia đối tượng
thành các mặt lưới khi chúng ta áp dụng phương pháp edit mesh cho đối tượng.
Chúng ta có thể dễ dàng hình dung quá trình thực hiện như sau:
Các thông số thiết lập
cho hình trụ
Hình trụ được tạo ra Áp dụng Edit mesh để chuyển hình trụ sang
dạng lưới
Hình trụ thu được sau
khi chuyển sang dạng
lưới
i.
- 55 -
Hình trụ thu được sau
khi chuyển sang dạng
lưới
Thay đổi vị trí các
điểm trên lưới
kết quả thu được sau khi
thay đổi vị trí các điểm
Áp chất liệu thuỷ
tinh cho đối
tượng
Kết quả thu được
Hình trụ thu được sau
khi chuyển sang dạng
lưới
Thay đổi vị trí các
điểm trên lưới
kết quả thu được sau khi
thay đổi vị trí các điểm
Áp chất liệu thuỷ
tinh cho đối
tượng
Kết quả thu được
Hình 4: Sơ đồ tạo đối tượng đơn giản
Khi chúng ta thiết lập height segment = 17 và sides = 20 thì chiều cao của hình trụ
được chia ra thành 17 đoạn đều nhau và chu vi được chia thành 20 đoạn đều nhau. Khi áp
dụng edit mesh cho hình trụ thì 3ds max sẽ chuyển hình trụ thành 17x20 mặt tứ diện đều
nhau. Các mặt tứ diện này được chia cắt bằng các đường cắt nhau bởi các điểm giao nhau
(màu xanh). Chúng ta có thể thay đổi vị trí các điểm này trong không gian 3 chiều để làm
thay đổi các mặt tứ diện và tạo thành bề mặt của đối tượng.
Thực hiện tương tự đối tượng dạng hình cầu (sphere) và hình hộp (box) để tạo các đối
tượng như đèn cồn, bàn thực hiện thí nghiệm…
Như vậy chúng ta có thể dễ dàng hình dung ra các bước để tạo ra một đối tượng có
hình trụ. Hầu hết các đối tượng đơn giản trong đề tài đều được sử dụng phương pháp này
để tạo ra. Chỉ cần thay đổi các thông số cơ bản là chúng ta có thể dễ dàng tạo ra một loạt
các loại ống nghiệm, chai, lọ, cốc có kích thước, và hình dạng khác nhau.
i.
- 56 -
Sau khi đã tạo được đối tượng dạng khung dựng chúng ta phải thực hiện một phần
quan trọng tiếp theo là tạo chất liệu cho đối tượng. Nếu khung dựng là bộ xương của đối
tượng thì chất liệu chính là da thịt, là bộ mặt của đối tượng. Việc tạo chất liệu đóng góp
một phần quan trọng trong việc tạo ra một đối tượng.
Mỗi một loại chất liệu lại có một số các đặc điểm riêng để phân biệt với các loại khác,
ví dụ chất liệu thuỷ tinh thì đặc trưng bởi độ trong suốt hay mờ đục (Opacity)... 3ds max
cung cấp cho chúng ta đầy đủ các thuộc tính đặc trưng để có thể tạo ra hầu hết các loại
chất liệu trong thực tế. Các đối tượng cần sử dụng trong phần mềm mô phỏng hầu hết
được làm bằng chất liệu thuỷ tinh, do đó chúng ta sẽ cùng tìm hiểu cách tạo chất liệu thuỷ
tinh, sau đó sử dụng cho các đối tượng mà chúng ta đã tạo ra ở phần trên....
Cách tạo chất liệu thuỷ tinh
Việc tạo chất liệu trong 3ds max là một công việc phức tạp. Mỗi chất liệu được tạo ra
từ rất nhiều các thông số khác nhau kết hợp lại, ví dụ: màu sắc (color), màu xung quanh
(ambient color), màu khuyếch tán (diffuse color) độ phản chiếu (reflection), độ khúc xạ
(refraction), tính mờ đục hay tính chắn sáng (opacity)...tùy theo từng chất liệu khác nhau
mà chúng ta sử dụng các thông số phù hợp để tạo.
Do tính chất vật lý của chất liệu thủy tinh là trong suốt và có thể để ánh sáng khác xạ
qua nên khi tạo chúng ta chỉ cần đặc biệt quan tâm đến hai thông số đặc trưng là độ khúc
xạ (refraction) và tính chắn sáng/tính mờ đục (opacity).
Độ khúc xạ được biểu diễn bằng chỉ số khúc xạ IOR (Index Of Refraction). IOR điều
khiển chặt chẽ tính khúc xạ ánh sáng của chất liệu. Các chất liệu khác nhau có các giá trị
IOR khác nhau. Độ khúc xạ của chân không có giá trị IOR chính xác bằng 1, còn của
không khí thì bằng 1,0003 (có thể coi là bằng 1). Khi một đối tượng được làm bằng chất
liệu có giá trị IOR bằng 1 thì khi nhìn xuyên qua nó ta sẽ thấy đối tượng đằng sau sẽ
không bị bóp méo. Giá trị IOR càng lớn thì các đối tượng đằng sau sẽ càng bị biến dạng
nhiều hơn.
Các giá trị IOR của một số chất liệu cụ thể như sau:
Tên chất liệu/môi trường Giá trị IOR
Chân không 1
Không khí 1,0003
Nước 1.333
Thủy tinh 1,5 đến 1,7
i.
- 57 -
Kim cương 2,419
Tính chắn sáng có giá trị được xác định nằm trong khoảng từ 0% đến 100%. Khi chất
liệu có thông số opacity bằng 100% nghĩa là chất liệu đó chắn sáng hoàn toàn và ánh
sáng không thể xuyên qua được. Một chất liệu sẽ hoàn toàn trong suốt và cho ánh sáng
xuyên qua hoàn toàn khi giá trị opacity bằng 0. Như vậy giá trị opacity càng nhỏ thì độ
trong suốt càng lớn. Do đó tùy theo yêu cầu về độ trong suốt của chất liệu mà chúng ta
chọn giá trị opacity cho phù hợp.
Để tạo chất liệu thủy tinh cho các dụng cụ thí nghiệm hóa học chúng tôi lấy giá trị
IOR bằng 1,5 và opacity bằng 60%. Và kết quả chất liệu thu được có độ trong suốt, khúc
xạ và độ bóng cao, biểu diễn được chính xác chất liệu thủy tinh như trong thực tế.
3.2 Tạo các đối tượng phức tạp
Do các hiệu ứng cháy, nổ, khói, bọt khí bay ra… là các hiệu ứng phức tạp, thường là
bao gồm rất nhiều các thành phần nhỏ hợp lại nên phải dùng đối tượng dạng hệ thống hạt
(Particle system) để tạo, sau đó kết hợp với một số hiệu ứng đặc biệt khác như Video
Post, Rendering Effect... để tạo được hiệu quả thuyết phục.
Particle system là các đối tượng mô phỏng sự sắp xếp và chuyển động phức tạp của
một tập các phần tử nhỏ bằng cách đinh nghĩa việc sinh ra và chuyển động của các phần
tử đó theo một thủ tục miêu tả cho cả hệ thống. Theo cách này chúng ta không cần phải
tạo riêng rẽ từng phần tử và cho chúng chuyển động riêng lẻ, mà có thể đơn giản tạo ra cả
một hệ thống gồm rất nhiều các phần tử và cho chúng chuyển động theo ý muốn bằng
cách tạo một thủ tục đơn giản cho một đối tượng, mà đối tượng đó bao gồm tất cả các
phần tử con, đối tượng đó được gọi là đối tượng Particle system. Đối tượng Particle
system trong 3ds max thường được sử dụng để mô phỏng các hiện tượng tự nhiên như
mưa, sương, khói, lửa cháy, pháo hoa hay các đám côn trùng…và cũng được dùng để tạo
mô hình cho các đối tượng dạng lưới tĩnh
3ds max cung cấp cho chúng ta 6 đối tượng dạng Particle system cơ bản, ngoài ra
chúng ta có thể sử dụng các plug-in của các hãng khác nhau để lấy thêm các đối tượng
Particle system khác khi muốn tạo ra các hiệu quả phức tạp
Spray: thường được sử dụng để tạo các tia dạng đơn giản. Chúng ta có thể sử dụng để
mô phỏng các hiện tượng như vòi nước phun hay mưa…
i.
- 58 -
Snow: được sử dụng để tạo các hiệu quả tuyết. đối tượng dạng này có rất nhiều các
tham số cho phép chúng ta có thể sửa đổi hình dạng cũng như kích thước của các hạt một
cách linh hoạt và tạo nên sự chuyển động hỗn độn của các hạt trong hệ thống, để làm cho
hệ thống trông sinh động và thật hơn.
Pcloud: thường được sử dụng để tạo các đám mây gồm các hạt tĩnh hay các đám bọt
khí, bong bóng. Phạm vi hoạt động của các hạt trong hệ thống có thể được hạn chế theo
hình dáng của các đối tượng khác nhau do chúng ta lựa chọn
Parray: dùng để tạo ra các hạt phun toả ra từ các loại vật thể, hoặc có thể sử dụng để
tạo các hiệu quả nổ
SupperSpray: là một đối tượng nâng cao của Spray, có nhiều thông số và tính năng,
giúp chúng ta có thể sử dụng để tạo ra hầu hết các hiệu quả cần thiết.
Blizzard: là đối tượng nâng cao của Snow, cũng có nhiều thông số cho phép chúng ta
có thể sử dụng để tạo các hệ thông hạt tuyết phức tạp.
Particle system có các tham số cho phép chúng ta có thể điều chỉnh để có thể tạo ra
hoạt động theo thời gian. Thông qua việc điều chỉnh và sử dụng linh hoạt các tham số này
chúng ta có thể tạo ra được rất nhiều các hiệu quả khác nhau.
Trong đề tài chúng ta cần phải mô phỏng một số hiện tượng hoá học như: các chất hoá
học tác dụng với nhau sinh ra bọt khí, sinh ra các chất kết tủa, sinh ra oxi tạo ra lửa cháy
sáng... sau đây chúng ta sẽ cùng tìm hiểu cụ thể cách thiết lập các thông số để tạo ra các
hiện tượng đó. Các thông số này chúng tôi thu được sau khi đã thử và so sánh rất nhiều
các giá trị khác nhau để rút ra được các thông số phù hợp nhất.
3.2.1 Cách tạo lửa cháy sáng chói như pháo hoa
Yêu cầu của đề tài: (minh hoạ hiện tượng muối bị phân huỷ) Muối KMnO4 khi bị
đun nóng sẽ phân huỷ và tạo ra K2MnO4, MnO2 và khí oxi. Khi đưa que đóm có than
hồng vào ống nghiệm, than hồng gặp oxi sẽ cháy sáng chói giống như pháo hoa.
Như vậy chúng ta cần phải tạo ra hiện tượng các tia lửa phun ra từ đầu que đóm và
cháy sáng chói. Để tạo ra các tia lửa chúng ta cần sử dụng đối tượng Spray, để tạo ra sự
cháy sáng chói chúng ta sử dụng kết hợp với chức năng Video post của 3ds max. Cách
thực hiện như sau:
Tạo một đối tượng Spray trên cửa sổ Front view, sau đó đặt vị trí của đối tượng Spray
vào vị trí của đầu que đóm, thiết lập các thông số sau đây cho đối tượng Spray vừa tạo.
i.
- 59 -
View port count = 100: số lượng các hạt được hiển thị trên khung nhìn
Render port count = 400: số lượng các hạt thực sự được sinh ra khi render
Thông thường thì người ta thường chọn số lượng các hạt hiển thị trên khung nhìn ít
hơn để tốc độ dựng hình được nhanh
Drop size = 20.0: kích thước của một hạt, được tính theo đơn vị của 3d max
Speed = 1.0: là tốc độ của các hạt được phân tán ra từ bộ sinh
Variation = 10.0: cho phép thay đổi phương hướng của các hạt sau khi sinh ra từ bộ
sinh
Start=240: xác đinh thời điểm bắt đầu sinh của một hạt = khung đầu tiên của một hạt
được sinh ra
Life =10: xác nhận thời gian tồn tại của một hạt từ khi sinh ra đến khi mất đi, giá trị
này được tính bằng số lượng frame
(Birth rate: được kích hoạt khi tuỳ chọn Constant bị tắt. Nút này định số lượng các
hạt được phân tán cho mỗi khung, và các hạt sẽ được phân tán liên tục cho đến khi đạt
giới hạn = render port count)
Sau khi thiết lập được các thông số như trên chúng ta đã có được các tia lửa bắn ra từ
than hồng như hình vẽ sau:
Tiếp theo chúng ta sử dụng Video post để tạo độ chói sáng cho các tia lửa
Vào menu Rendering chọn Video post, cửa sổ Video post mở ra, nhấn nút Add image
filter event trong cửa số Video post để mở ra cửa sổ Add image filter event, chọn Lens
effects grow
Chọn OK để đóng cửa sổ Add image filter event và trở về cửa sổ Video post
Nhấn đúp chuột vào Lens effect glow trong cửa sổ Video post để mở cửa sổ Edit
filter event và thiết lập các thông số cho nó. Vấn đề quan trọng nhất là thiết lập màu sắc
i.
- 60 -
cho ánh sáng phát ra. Trong ô color chúng ta có thể chọn 1 trong 3 kiểu là Gradient
(màu chuyển dần), Pixel hay User (do người sử dụng quy định)
Nhấn OK để quay trở lại cửa sổ Video post, nhấn nút Add image output event để
chọn tên file la thu5.avi và vị trí đặt file movie sẽ hiển thị, nhấn OK để quay lại cửa sổ
Video post.
Sau khi render chúng ta sẽ được kết quả là các tia lửa bắn ra từ que đóm sẽ phát ra ánh
sáng chói.
So sánh hai hình ảnh trên ta thấy rõ ràng sau khi thêm hiệu ứng Video post vào thì que
đóm cháy sáng chói thoả mãn được yêu cầu cuả đề tài. Như vậy là chúng ta đã hoàn
thành được việc mô tả hiện tượng
3.2.2 Cách tạo bọt khí
Yêu cầu của đề tài: (minh hoạ hiện tượng kim loại tác dụng với axit) Cho đinh sắt
vào ống nghiệm đựng dung dich axit sunfuric loãng xảy ra hiện tượng đinh sắt tan dần,
bọt khí bay ra.
Như vậy vấn đề khó khăn là phải tạo ra các bọt khí sinh ra từ đinh sắt và bay ra khỏi
ống nghiệm. Để thực hiện được việc này chúng ta sử dụng một đối tượng kiểu PCloud,
cách thực hiện như sau:
Tạo một đối tượng PCloud trên cửa sổ Top view, thiết lập các thông số sau đây cho
đối tượng PCloud vừa tạo.
Do các bọt khí sẽ được sinh ra từ bề mặt của đinh sắt nên trong phần Basic Parameter
chúng ta nhấn vào nút Pick Object rồi chọn dinhsat (là tên của đối tượng đinh sắt). Thao
tác này sẽ chỉ cho 3ds max biết rằng các bọt khí phải được sinh ra từ đối tượng đinh sắt.
Trong phần Particle Formation chúng ta chọn Object-based Emitter, thao tác này chỉ
cho 3ds max biết rằng hình dáng và kích thước của bộ sinh đối tượng được dựa theo hình
dáng và kích thước của đinh sắt. Tiếp theo chúng ta thiết lập các thông số quy định việc
sinh ra các bọt khí
i.
- 61 -
Chọn Use Rate và đặt giá trị = 10, đặt Speed = 0.35 (tốc độ chuyển động của các hạt
sau khi sinh ra), Variation = 25 (độ biến thiên của tốc độ, tính theo phần trăm).
Do các bọt khí sinh ra sẽ chuyển động lên trên mặt dung dich axit nên chúng ta chọn
hướng chuyển động của các hạt bằng cách chọn Direction Vector và thiết lập giá trị cho
ô Y = 0.5 (Y là hướng từ đáy ống nghiệm lên miệng ống nghiệm)
Tuỳ theo tình huống mà chúng ta thiết lập các thông số về thời gian cho các hạt, cụ thể
với trường hợp này chúng tôi chọn các giá trị như sau
Emit Start = 65 (các bọt khí bắt đầu sinh ra từ frame thứ 65)
Emit Stop = 600 (các bọt khí dừng sinh từ frame thứ 600)
Display Until = 700 (các bọt khí sẽ biến mất hoàn toàn từ frame 700, cho dù giá trị
Life của nó vẫn còn giá trị)
Life = 90 (số frame tồn tại của các bọt khí tính từ khi sinh ra đến khi mất đi)
Variation = 0 (các giá trị thiết lập sẽ không biến thiên)
Size = 0.8 (kích thước của bọt khí)
Variation = 0 (kích thước của bọt khí không thay đổi)
Tiếp theo chúng ta chọn hình dạng cho bọt khí, các bọt khí tất nhiên là hình cầu, do đó
trong phần Particle Type chúng ta chọn Standard Particles, và chọn Sphere
Tiếp theo chúng ta chọn chất liệu thuỷ tinh màu trắng cho các bọt khí, và khi render
chúng ta sẽ thu được kết quả như sau:
i.
- 62 -
4. Kết luận
Việc chọn phần mềm 3ds max làm công cụ xây dựng các thí nghiệm mô phỏng các
hiện tượng hóa học đã thỏa mãn được yêu cầu của đề tài. Sau một thời gian ngắn tìm hiểu
và thử nghiệm chúng tôi đã rút ra được các quy trình tạo đối tượng nhanh nhất và hiệu
quả nhất. Bằng các quy trình này chúng tôi đã nhanh chóng xây dựng được một thư viện
các dụng cụ thí nghiệm hóa học. Do các dụng cụ này được xây dựng lên từ một qui trình
thống nhất nên khi có yêu cầu thay đổi hay làm mới chúng ta chỉ cần điều chỉnh một vài
thông số là đã có được một đối tượng thỏa mãn yêu cầu.
Tuy việc tạo ra các đối tượng trên là các thao tác rất cơ bản và không quá phức tạp
nhưng nếu chúng ta không xây dựng một qui trình làm việc khoa học thì khi làm việc sẽ
rất tốn thời gian và không hiệu quả. Việc xây dựng nên qui trình thống nhất và thư viện
dữ liệu sẽ giúp chúng ta tiết kiệm được thời gian và có thể chia sẻ cho người khác cùng
sử dụng.
i.
- 63 -
PHƯƠNG PHÁP TẠO CHẤT LIỆU THUỶ TINH CHO
CÁC DỤNG CỤ TRONG THÍ NGHIỆM HOÁ HỌC
Nguyễn Thị Ngọc Hân
Viện Công nghệ thông tin, Đại học Quốc gia Hà nội
Tóm tắt: Các dụng cụ thí nghiệm bằng thủy tinh được sử dụng rất nhiều trong các
thí nghiệm hóa học ở trường trung học cơ sở, tuy nhiên việc tạo ra một dụng cụ thí
nghiệm đúng kích thước và đúng chất liệu trong 3ds max vẫn là một vấn đề mà
người thiết kế không dễ thấy hài lòng. Sau quá trình nghiên cứu, chúng tôi đã đưa
ra một qui trình tạo các dụng cụ thí nghiệm hóa học sử dụng chất liệu thủy tinh và
ứng dụng trong tất cả các thí nghiệm sau này.
Từ Khoá: Dụng cụ thí nghiệm, chất liệu thủy tinh.
GIỚI THIỆU
Chương trình 3DS MAX là một chương trình phần mềm 3 chiều chuyên nghiệp, nó
cung cấp hầu hết các phương pháp tạo và thể hiện đối tượng với nhiều ưu điểm nổi trội,
công cụ, giao diện và khả năng Render đa dạng. Chính vì thế chúng tôi đã chọn chương
trình 3DS MAX làm công cụ để xây dựng các đoạn mô phỏng dùng trong đề tài.
Một trong những trọng tâm của đề tài là mô phỏng các thí nghiệm hoá học trong sách
giáo khoa của trung học cơ sở. Các thí nghiệm này được mô phỏng như trong một phòng
thí nghiệm ảo, với các dụng cụ thí nghiệm được mô phỏng như trong thực tế. Các dụng
cụ thí nghiệm có rất nhiều loại, nhưng chiếm một phần không nhỏ là các dụng cụ có chất
liệu thuỷ tinh. Phần dưới đây chúng tôi xin trình bày qui trình tạo các dụng cụ này và
phương pháp tạo chất liệu thuỷ tinh để áp lên các dụng cụ đó.
PHƯƠNG PHÁP TẠO CHẤT LIỆU THỦY TINH
Để tạo một dụng cụ thí nghiệm dùng chất liệu thủy tinh, chúng ta cần phải trải qua các
bước như sau:
Tạo đối tượng và sửa đổi đối tượng
Áp chất liệu thuỷ tinh cho đối tượng
Đặt chế độ chiếu sáng cho đối tượng
Tạo đối tượng và sửa đổi đối tượng
Trong 3DS MAX, các đối tượng cơ bản được cung cấp rất đa dạng.
i.
- 64 -
Với các đối tượng này, để tạo các đối tượng có hình dạng đơn giản là một vấn đề
không khó. Chúng ta cần đi qua các bước thao tác như sau:
Chọn đối tượng cơ bản có hình khối tương tự giống với đối tượng mà ta định tạo ra. Ví
dụ: Chúng ta nên chọn đối tượng Cylinder (hình trụ) hoặc Tube (hình ống) để tạo các
dụng cụ có miệng tròn và thân dài như ống nghiệm, ống thuỷ tinh, ống đong, bình đựng
dung dịch, cốc thuỷ tinh, ….
Với các đối tượng có khung là hình cầu như bình cầu, đèn cồn thì ta nên chọn đối
tượng Sphere (hình cầu) hay GeoSphere.
Sau khi đưa đối tượng vào khung nhìn bất kỳ, ta chuyển sang Tab Modify để thiết lập
các thông số cơ bản cho đối tượng. Ví dụ như với đối tượng cơ bản Tube ta có các thông
số cơ bản sau:
Radius 1, radius 2: xác định bán kính trong và bán kính ngoài của hình trụ
Height: xác định chiều cao hình trụ
Height segment: xác đinh số phần chia theo chiều dài
Cap segment: xác định số phần chia tâm của khối trụ
i.
- 65 -
Sides: xác định số mặt trên chu vi hình trụ. Số mặt này càng lớn thì độ cong của đối
tượng sẽ càng mịn hơn.
Giá trị của bán kính và chiều cao chúng ta thiết lập tuỳ theo yêu cầu về kích thước của
đối tượng. Cần chú ý đến giá trị xác định số phần chia theo chu vi và chiều cao, các giá
trị này sẽ tỷ lệ với số lượng các điểm chia đối tượng thành các mặt lưới khi chúng ta áp
dụng phương pháp editable mesh cho đối tượng.
Khi đã chuyển đổi đối tượng thành các mặt lưới, chúng ta có thể thay đổi khung của
đối tượng bằng cách thay đổi các đối tượng con của vật thể (lúc này là các đối tượng:
Vertex (điểm), Edge (cạnh), Face (mặt), Polygon (đa giác), Element(thành phần)).
Quá trình thực hiện có thể mô tả như sau:
Bước 1: Tạo đối tượng Tube
Bước 2: Thay đổi các thông số của đối
tượng trên Tab Modify
Bước 3: Chuyển đối tượng sang dạng
mặt lưới bằng lệnh Editable Mesh
Bước 4: Tạo khuôn dạng cho đối tượng
bằng cách thay đổi các đối tượng con của
vật thể
i.
- 66 -
Mộ
t số
kết
quả
sau
khi
thực
hiện
Áp chất liệu thuỷ tinh cho đối tượng
Sau khi đã tạo được hình dạng của đối tượng, chúng ta phải thực hiện một phần quan
trọng nữa là tạo chất liệu cho đối tượng. Tất cả các vật thể trong thực tế đều được tạo ra
từ một loại chất liệu nào đó, như gỗ, đá, sắt,….Loại chất liệu khác nhau khi áp dụng cho
một vật thể sẽ tạo ra cho người xem những cảm nhận khác nhau.
Chương trình 3DS MAX cung cấp khá đầy củ các thuộc
tính đặc trưng để có thể tạo ra hầu hết các loại chất liệu trong
thực tế. Các đối tượng sử dụng trong các thí nghiệm hoá học
trong phần mềm mô phỏng hầu hết được làm bằng chất liệu
thuỷ tinh, do đó chúng ta sẽ cùng tìm hiểu cách tạo chất liệu
thuỷ tinh, sau đó sử dụng cho các đối tượng mà chúng ta đã
tạo ra ở phần trên....
Thành phần chủ yếu để làm việc với các chất liệu trong
3ds max là Material Editor. Có 2 cách để truy nhập tới
Material Editor: bằng cách chọn từ menu kéo xuống
Rendering/Material Editor hoặc bằng cách nhấn phím tắt M.
i.
- 67 -
Trong hộp thoại Material Editor, để tạo chất liệu thuỷ tinh ta thực hiện các bước như
sau:
Đầu tiên ta phải chọn chế độ tô bóng cho chất liệu mà ta sẽ áp vào đối tượng. Ở đây
3dmax cho ta rất nhiều lựa chọn về tô bóng. Nhưng có lẽ ở vật thể thuỷ tinh này chúng ta
chỉ có thể chọn hai chế độ tô bóng là Blind và Phong.
Trong hộp văn bản tên chất liệu, nhập vào tên “thuy tinh trong”. Tại phần bảng cuộn
Shader Basic Parameters, chọn kiểm tuỳ chọn 2_Sided. Điều này cho phép chất liệu được
áp lên cả hai phía của vật thể, bất chấp phương hướng của pháp tuyến mặt Face Normal.
Trong bảng cuộn Blinn Basic Parameters, click vào ô chọn màu Diffuse và trong bộ
chọn màu Color Selector, nhập vào các giá trị như sau: Red = 205, Green = 235, Blue =
235 để có được một màu xanh dương. Kích vào ô chọn màu Specular, sử dụng bộ chọn
màu Color Selector để đổi màu nó sang màu thuần trắng có giá trị: Red = 255, Green =
255, Blue = 255.
Nhập 100 vào ô giá trị Specular Level, 40 vào ô Glossiness và 30 vào ô Opacity để
làm cho chất liệu có độ trong suốt 70 phần trăm.
Giá trị Specular Level cho biết độ phản quang của
chất liệu được áp vào đối tượng, và giá trị Glossiness
cho biết độ bóng của chất liệu. Tuỳ từng loại chất liệu
thuỷ tinh mà chúng ta có thể lựa chọn cho thích hợp trị
số của hai giá trị này. “Ở đây chúng ta cần thuỷ tinh có
độ bóng khá cao chính vì thế mà chúng ta chọn giá trị là
100 và 40 “.
Quan trọng nhất trong phần áp chất liệu này có lẽ là
giá trị Opacity. Vì đây là giá trị quyết định độ mờ đục
hay trong suốt của chất liệu. Giá trị Opacity càng cao thì
vật thể được áp càng mờ đục.
Trong phần Advanced Transparency của bảng cuộn
Extended Parameters, vẫn chọn kiểm ở mục In và nhập
100 vào ô Amount để đặt chế độ trong suốt cực độ từ
trong ra.
Ở phần Advanced Transparency, tại mục Type có 3 tuỳ chọn Filter, Subtractive,
Additive. Tại đây ta chọn mục Filter cho biết chất liệu thuỷ tinh mà được áp có ánh sáng
i.
- 68 -
phía trong cân bằng với ánh sáng môi trường “ Có nghĩa là vật thể ở trong chất liệu thuỷ
tinh có độ chiếu sáng bằng với độ chiếu sáng môi trường “. Tuỳ chọn Subtractive cho ta
ánh sáng trong thuỷ tinh ít hơn ánh sáng môi trường và tuỳ chọn Additive cho ta kết quả
ngược lại.
Trong hộp thoại Material Editor, kích nút Background có biểu tượng hình kẻ ô như
hình dưới đây. Nút này sẽ chuyển ảnh nền của cửa sổ mẫu đang được
kích hoạt sang dạng kẻ ô, giúp hình dung tính chất trong suốt rõ hơn.
Chất liệu đã tạo ra có vẻ khá giống với thuỷ tinh, nhưng nếu cần chúng
ta vẫn có thể làm tinh hơn với chất liệu này.
Như ta đã biết, ánh sáng nhìn qua chất liệu thuỷ tinh bao giờ cũng phản quang lại
những vật thể xung quanh nó. Chính vì thế mà ta sẽ nhìn thấy ảnh của các vật thể hiện lên
đối tượng được áp chất liệu thuỷ tinh đó. Tuy là rất nhỏ nhưng nếu ta quan tâm đến nó thì
chất lượng render ảnh sẽ cao hơn.
Để áp dụng với thuỷ tinh hoặc những chất phản quang thì 3dmax đã áp dụng một thủ
tục áp ảnh map rất thích hợp. Đó là thủ tục Reflection. Đây là thủ tục dành cho độ phản
quang của chất liệu. Tại đây có 3 map thủ tục mà ta hay dùng với Reflection đó là Flat
Mirror, Reflect/Refract, Raytrace. Trong đó Flat Mirror là thủ tục hay dùng với phản
quang kiểu gương phẳng “ các tấm plane chẳng hạn “. Reflect/Refract là thủ tục hay dùng
với phản quang kiểu gương cầu “ các hình có bán kính cong như Sphere, Cylinder… “.
Raytrace là thủ tục phản quang chính xác nhất kiểu dò tia, chính vì thế mà ta nên dùng
thủ tục này để đạt độ tối ưu với chất liệu thuỷ tinh “ Nhưng thời gian render sẽ lâu hơn so
với bình thường lên khá cao “.
i.
- 69 -
Tại slot chất liệu thuỷ tinh trong, ta chuyển xuống bảng cuộn map của hộp thoại
Material Editor. Click chuột vào thanh cuộn Reflection để chấp nhận áp
thủ tục phản quang cho chất liệu. Tại phần chọn thủ tục áp trong bảng
động Material/Map Browse ta chọn thủ tục Raytrace. Tại phần giá trị của
thanh cuộn Reflection ta chọn giá trị 20 để cho độ phản quang của thuỷ
tinh chỉ là 20% mà thôi. Vậy là ta đã có một chất liệu thuỷ tinh tương đối
hoàn hảo.
Sau khi tạo xong chất liệu, chọn nút lệnh Assign Material to Selection nằm ngay bên
trên nút có biểu tượng ống nhỏ mắt để áp chất liệu Thuy tinh trong cho các đối tượng
đang được chọn. Ngoài ra ta có thể nhấn vào nút lệnh Put to Library để lưu chất liệu đã
tạo vào trong thư viện và sử dụng cho các đối tượng sau này.
Đặt chế độ chiếu sáng cho đối tượng
Ở một đoạn movie mô tả thí nghiệm hoá học, bài toán đặt ra cho ánh sáng là việc đặt
ra một ánh sáng vừa đủ và không quá nhiều hiệu ứng để đảm bảo cho người xem được
các thao tác và các biến đổi của thí nghiệm hoá học này. Chính vì thế mà ánh sáng trong
những thí nghiệm này không nên quá phức tạp, chúng ta chỉ nên dùng một loại nguồn
sáng thuần nhất cho thí nghiệm với ánh sáng vừa đủ để người xem có thể theo dõi được
chính xác các thí nghiệm hoá học.
Tại phần Lights của bảng Create, ta có thể chọn ba loại nguồn sáng cơ bản là Omni,
Spot hoặc Direct Light. Ở đây ta chọn nguồn sáng Omni là nguồn sáng điểm để đảm bảo
chiếu sáng hầu hết các vật thể trong khung nhìn của thí nghiệm.
Với Omni chúng ta có thể thay đổi những hiệu quả sau.
i.
- 70 -
Ánh sáng yếu đi hay mạnh lên được thay đổi bằng các thông số tại phần Multiplier tại
bảng cuộn Intensity/Color/Attenuation.
Có đổ bóng các vật thể hay không và các kiểu đổ bóng được thay đổi bằng cách click
chuột vào lựa chọn Shadow tại bảng cuộn General Parameters.
Mầu sắc của ánh sáng được chọn bằng ô chọn Color tại bảng cuộn
Intensity/Color/Attenuation.
Với các chế độ tô bóng ta có thể chọn 3 loại chế độ. Đó là Shadow Map, Ray Traced
Shadow và Area Shadow.
Về cơ bản thì chế độ tô bóng Ray Traced và Area là khá giống nhau vì đều là chế độ
tô bóng dò tia, tuy nhiên chế độ tô bóng Area thì có độ chân thực cao hơn vì nó làm mềm
các cạnh biên của bóng đổ. Ngoài ra nếu cần tăng tốc độ render thì bóng đổ Shadow Map
cũng là một giải pháp chấp nhận được. Ở đây ta chỉ đề cập đến bóng đổ Area vì đó là
bóng đổ tốt nhất mà ta nên dùng.
Với chế độ tô bóng này ta chỉ cần quan tâm đến phần bảng cuộn Area Shadow mà
thôi.Trong đó thì thông số quan trọng nhất là Bias “độ chính xác “ và Sample Spread “độ
nhoè của cạnh biên bóng đổ “.Ở đây ta chọn Bias là 0,5 và Sample Spread là 5. Các chế
độ khác như mặc định.
Áp dụng thực tế trong đề tài
Cùng với chất liệu thuỷ tinh được tạo ra ở trên, chúng tôi đã tạo ra một bộ các dụng cụ
thí nghiệm được áp dụng trong các thí nghiệm hoá học trong đề tài. Bộ dụng cụ này có
thể sử dụng lại nhiều lần trong các thí nghiệm mô phỏng về sau.
i.
- 71 -
Kết luận
Chất liệu thuỷ tinh là chất liệu chủ yếu của các dụng cụ thí nghiệm hoá học. Việc tạo
ra và sử dụng chung một mẫu chất liệu sẽ tạo sự thống nhất trong cả bộ dụng cụ sử dụng
trong các thí nghiệm hoá học trong chương trình. Điều này còn làm tăng hiệu quả mô
phỏng trong đề tài, đảm bảo tính chính xác, hiện thực và hấp dẫn người học.
Chính vì thế mà trong bài viết này chúng tôi đưa ra một mẫu vật liệu đặc trưng của
chất liệu thủy tinh để làm vật liệu chính cho những thí nghiệm hóa học mà chúng tôi đã
mô phỏng. Đây không phải là phương pháp làm duy nhất để làm nên chất liệu thủy tinh
nhưng cũng là một phương pháp hiệu quả và dễ sử dụng nhất là đối với những người mới
biết cách sử dụng chương trình 3dsmax.
Việc mô phỏng các thí nghiệm hóa học là một việc đòi hỏi độ xác thực cao, chính vì
thế mà việc thể hiện các dụng cụ thí nghiệm sao cho chính xác với ngoài thực tế cũng là
i.
- 72 -
một việc rất khó. Chất liệu thủy tinh mà chúng tôi nghiên cứu phần nào đã đáp ứng được
việc thể hiện các thí nghiệm được xác thực và rõ ràng hơn. Chúng tôi đang, đã và sẽ cố
gắng nghiên cứu các phương pháp để nâng cao việc thể hiện một cách xác thực nhất, chi
tiết nhất các thí nghiệm hóa học cần mô phỏng. Và chúng tôi sẵn sàng tiếp nhận những
lời góp ý của các bạn để càng ngày càng nâng cao những bài thí nghiệm. Đó cũng là một
cách làm tốt nhất để phục vụ việc học tập của các học sinh thân yêu của chúng ta.
Các file đính kèm theo tài liệu này:
- Báo cáo tham luận hội thảo Ứng dụng công nghệ Multimedia trong giáo dục đào tạo.pdf