- Thử nghiệm này đẩy motion blur tới “giới hạn logic”, định nghĩa lại độ nhòe bằng cách thu hẹp khác biệt giữa motion smear trong thị giác con người và cách màn hình tái tạo hình ảnh, rồi áp dụng nó vào hoạt ảnh thời gian thực theo thủ tục
- Trong cảnh tự nhiên, tế bào nón trên võng mạc tích hợp kích thích ánh sáng theo thời gian, tạo ra độ nhòe ở cấp thụ thể, nhưng trên màn hình có tốc độ khung hình thấp, hình ảnh không blur trông giống các khung hình chồng lên nhau hơn là smear tự nhiên
- Motion blur truyền thống lấy trung bình khoảng thời gian của một khung hình nên gần với cảnh tự nhiên hơn, nhưng với vật thể nhanh vẫn có thể còn gián đoạn; vì vậy shutter function giảm trọng số ở điểm bắt đầu và kết thúc sẽ tạo kết quả tự nhiên hơn
- Triển khai shader thời gian thực tránh multisampling và ray tracing giải tích, biểu diễn vật thể chuyển động dưới dạng hàm mật độ trong tọa độ bao gồm cả thời gian, rồi render giá trị tích phân theo thời gian bằng volume ray casting
- “Torusphere Accelerator” cuối cùng blur một hình cầu chuyển động quỹ đạo và một torus quay tới tốc độ gần như vô hạn; vì không có “pháp tuyến đã motion blur”, pháp tuyến bề mặt được xử lý bằng nội suy riêng
Khác biệt giữa chuyển động trong cảnh tự nhiên và tái tạo trên màn hình
- Motion blur vốn là artifact của phim sinh ra khi chủ thể di chuyển trong lúc màn trập camera đang mở, nhưng trở nên hữu ích vì nó khiến video giống cảnh tự nhiên hơn về mặt tri giác
- Trong 3D và hoạt ảnh, “mô phỏng camera” và “trông tự nhiên” không phải lúc nào cũng là cùng một mục tiêu
- Để xem xét motion blur tự nhiên, cần đặt bốn câu hỏi
- Ta tri giác chuyển động trong cảnh tự nhiên như thế nào
- Ta tri giác cảnh được phát lại trên màn hình như thế nào
- Khác biệt tri giác giữa hai trường hợp là gì
- Motion blur trong video có thể giảm khác biệt đó như thế nào
Tích hợp thời gian của tế bào nón và motion smear
- Trong môi trường sáng, xử lý ban đầu của thị giác con người do tế bào nón đảm nhiệm, và phototransduction không diễn ra tức thì
- Độ trễ của kích thích ánh sáng có thể được mô hình hóa như một cách làm mượt kích thích theo chiều thời gian
- Ví dụ về tế bào nón của cá vàng trong Howlett et al. (2017) cho thấy số photon đi vào thụ thể ánh sáng, hàm trọng số, và “effective stimulus” thu được
- Kết hợp dạng hàm trọng số này với thời gian đáp ứng đã biết của tế bào nón người có thể mô phỏng hình ảnh được tri giác từ cảnh đầu vào
- Kết quả là ngay cả trong cảnh tự nhiên cũng đã tồn tại motion smear, tức độ nhòe tự nhiên ở cấp thụ thể ánh sáng
- Mô phỏng ví dụ giả định người quan sát nhìn vào một điểm cố định, không dùng mắt bám theo vật thể
Motion blur truyền thống làm gì trong video trên màn hình
- Khi xem màn hình có số khung hình mỗi giây bị giới hạn, hình ảnh được tri giác của video không có motion blur trông giống các khung hình chồng lên nhau, chứ không phải motion smear như kỳ vọng
- Video có áp dụng motion blur không hiển thị mỗi khung hình như một khoảnh khắc, mà lấy trung bình mọi khoảnh khắc trong khoảng thời gian mà khung hình đó bao phủ
- Điều này tương tự hình ảnh tạo ra bởi camera có màn trập mở trong suốt thời lượng một khung hình
- Hình ảnh được tri giác theo cách này giống trường hợp cảnh tự nhiên hơn nhiều
Giảm gián đoạn bằng shutter function
- Ngay cả với motion blur truyền thống, ở một số tốc độ vật thể vẫn có thể còn artifact gián đoạn trong motion smear
- Shutter function không lấy trung bình đều toàn bộ khoảng thời gian khung hình, mà đặt trọng số thấp hơn cho thời điểm bắt đầu và kết thúc khung hình, cao hơn cho thời điểm ở giữa
- Tên gọi xuất phát từ phép ví von với hiệu suất màn trập của camera diaphragm, nhưng ở đây mục tiêu là chọn hàm để giảm khác biệt tri giác giữa màn hình và cảnh tự nhiên, hơn là mô phỏng camera
- Vấn đề này rất giống việc tạo window function trong xử lý tín hiệu, và các window function phổ biến cho kết quả tốt
- Theo tiêu chí kiểm thử chủ quan, shutter function trở nên hữu ích khi quãng đường vật thể di chuyển trong một khung hình có cùng bậc với chiều rộng của vật thể
- Ở tốc độ thấp thì không quá cần thiết, nhưng với vật thể chuyển động nhanh, nó trông tự nhiên hơn và cả khung hình tĩnh cũng mượt hơn
- Cách tiếp cận này không phải mô phỏng camera thông thường, và phạm vi thời gian của các khung hình liên tiếp có thể chồng lấn nhau
- Mô phỏng camera thông thường không có chồng lấn thời gian giữa các khung hình, và thường bỏ các khoảnh khắc nằm giữa những khung hình
Tạo “motion blur vô hạn” bằng shader thời gian thực
- Hoạt ảnh mục tiêu kết hợp hình cầu chuyển động quỹ đạo và torus quay, đồng thời áp dụng motion blur cho cả hai tới tốc độ gần như vô hạn
- Để kết quả cuối có thể tương tác, phần triển khai dùng shader thời gian thực
- Multisampling là phương pháp render cảnh tại nhiều thời điểm trong mỗi khung hình
- Vật thể càng nhanh thì số mẫu cần thiết càng tăng tương ứng
- Không phù hợp với hoạt ảnh “tốc độ vô hạn”
- Motion blur bằng ray tracing giải tích cũng có thể là một phương án thay thế
- Với mesh, có phương pháp biến tam giác thành lăng trụ
- Cũng có thể dùng cách tiếp cận giải tích thuần túy, nhưng ở đây có thể trở thành phương pháp nặng hơn
- Cả hai cách vẫn cần multisampling để xử lý vật liệu
- Triển khai được chọn gần giống một bản hack có thể gọi là “integrated volume motion blur”
- Biểu diễn vật thể chuyển động bằng một hàm nhận tọa độ gồm cả thời gian làm đầu vào, trả về mật độ bằng 1 ở bên trong và 0 ở phần còn lại
- Tích phân hàm mật độ này theo thời gian sẽ cho mật độ đã motion blur của một khoảng thời gian bất kỳ
- Kết quả được render bằng volume ray casting
- Đây không phải phương pháp chính xác như nhiếp ảnh, nhưng có thể xử lý các quỹ đạo rất dài với hiệu năng thời gian thực
Mật độ motion blur của hình cầu chuyển động quỹ đạo
- Hình cầu chuyển động quỹ đạo có thể được rút gọn thành bài toán hình tròn chuyển động quỹ đạo trong mặt cắt 2D
- Giả sử tâm của hình tròn cách gốc tọa độ một khoảng R, và bán kính hình tròn là a
- Trong tọa độ cực, nếu tìm góc θ của bề mặt vật thể ứng với bán kính r cho trước, ta có thể tính thời điểm một điểm đi vào bên trong vật thể và thời điểm nó đi ra
- Khi vật thể chuyển động quỹ đạo với tốc độ v, nó được biểu diễn bằng cách trừ hạng tử thời gian vt khỏi tọa độ góc
- Tại một điểm không gian, độ dài phần giao giữa khoảng thời gian I mà vật thể tồn tại và khoảng thời gian khung hình hiện tại F trở thành mật độ đã motion blur
- Khi áp dụng shutter function s, ta nhân mật độ với s(t) rồi tích phân; nếu có nguyên hàm S của s, có thể tính dưới dạng
S(max I) - S(min I) - Shutter function dựa trên sine dùng trong hoạt ảnh được thiết kế để có giá trị tích phân bằng 1, và tổng tại một thời điểm bất kỳ luôn bằng 1 ngay cả khi chồng lấn trên trục thời gian
Torus quay và spiric section
- Torus quay cũng được xử lý theo cùng quy trình như hình cầu
- Mặt cắt dọc 2D của torus được gọi là spiric section, hay Spiric of Perseus
- Đặt minor radius của torus là a, major radius là b, và lấy mặt cắt tại một vị trí c nhất định, ta có thể biểu diễn vùng bên trong torus bằng công thức tọa độ cực
- Giải góc bề mặt θ để thu được hai trường hợp dương và âm, rồi dùng vùng giữa hai biên làm mật độ của solid torus
- Các bước sau đó giống với hình cầu chuyển động quỹ đạo: tìm khoảng thời gian và áp dụng tích phân shutter function
Torusphere Accelerator cuối cùng
- Cảnh cuối kết hợp hình cầu và torus, rồi render bằng volume ray casting tiêu chuẩn
- Surface normals cần xử lý bổ sung
- Vì không có khái niệm “pháp tuyến bề mặt đã motion blur”, triển khai này trộn các pháp tuyến để sử dụng
- Hoạt ảnh trực tiếp hỗ trợ tương tác cơ bản bằng chuột và cảm ứng
- Vì có thể không hoạt động tốt trên mọi thiết bị, một video đã render sẵn cũng được cung cấp ở đầu trang
- Shader cuối cùng cũng có thể xem trên Shadertoy
Các vấn đề tiếp nối trong thảo luận HN
- Trong thảo luận trên Hacker News, có quan điểm xem chất lượng motion blur là một lựa chọn nghệ thuật
- Tầm quan trọng của chuyển đổi không gian màu cũng được nhắc đến
- Cách motion blur phát triển trong lịch sử VFX điện ảnh cũng được thảo luận
- Bộ phim CG thời kỳ đầu Jurassic Park được nêu như một ví dụ dùng box shutter function bất khả thi về mặt vật lý
- Motion blur trong game vẫn là một chủ đề gây tranh luận
1 bình luận
Các ý kiến trên Hacker News
Sự đánh đổi khi render hoặc quay motion blur ở tần số quét màn hình hữu hạn nằm ở chỗ khán giả có thể dùng mắt dõi theo vật thể đang chuyển động trên màn hình
Trong thực tế, làm vậy sẽ khiến vật thể trở nên rõ nét. Vì thế cần theo dõi chuyển động của mắt để áp blur theo chuyển động tương đối, hoặc loại bỏ hoàn toàn motion blur ở tần số quét vô hạn. Cả hai hiện đều không thực tế với công nghệ hiện nay, nên lúc nào cũng sẽ có chỗ trông gượng gạo. Một đạo diễn hoặc nhà thiết kế game giỏi sẽ dự đoán mắt khán giả sẽ di chuyển thế nào để chọn tốc độ màn trập hoặc blur khi render
Nếu nội dung được render không thể nói cùng thứ ngôn ngữ thị giác đó, thì coi như thiếu mất một công cụ, bất kể tần số quét. Tất nhiên vẫn có giới hạn nhất định, nên nếu thật sự nhìn ra khác biệt ở 400Hz thì hẳn sẽ khá đáng kinh ngạc
Điểm thú vị ở nội dung render là có thể mở rộng điều này xa hơn. Ví dụ có thể chơi đùa với những khái niệm tưởng như ta đã hiểu, chẳng hạn góc màn trập vượt quá thời lượng của một frame
Cách này làm giảm độ sáng tối đa của màn hình và cần một frame rate tối thiểu để tránh nhấp nháy, nhưng nó giảm persistence blur, tức dạng blur do mắt dõi theo mà trong thực tế không tồn tại. Nói chính xác thì để loại bỏ hoàn toàn tracking blur, mỗi frame phải được hiển thị trong một khoảng thời gian ngắn vô hạn, nên không thực tế. Dù vậy, headset VR vẫn dùng cách lóe sáng/strobe này
Đây cũng là lý do màn hình CRT và plasma từng có độ rõ khi chuyển động tốt hơn LCD hoặc OLED rất nhiều. Loại trước hiển thị mỗi frame bằng một lần lóe ngắn, còn loại sau dùng cơ chế sample-and-hold, giữ nguyên cùng một frame trong toàn bộ thời gian của frame. Ví dụ ở 60Hz thì giữ trong 1/60 giây. 60FPS trên CRT thậm chí có thể trông mượt hơn 120FPS trên OLED
Trong game cũng có cách thêm nhiều frame bằng kỹ thuật tái chiếu. Nó có thể xấp xỉ chuyển động camera thực tế mà không cần engine render hàng loạt frame tốn kém. Cách này cũng đã được dùng trong VR, nhưng chưa tới mức frame rate thật cao. Bài viết này trình bày khá tốt chi tiết:
https://blurbusters.com/frame-generation-essentials-interpol...
Nghe nói khoảng 1000FPS bằng tái chiếu là khá thực tế, nên có vẻ có thể giải quyết vấn đề tracking blur mà không làm giảm độ sáng màn hình
Điều này có thể được triển khai bằng cách quét phát sáng của CRT/OLED, thường theo kiểu rolling, hoặc bằng strobing đèn nền LCD, thường theo kiểu toàn frame. Tuy nhiên ở 24Hz, nếu mỗi frame chỉ hiển thị trong thời gian ngắn thì sẽ nhấp nháy đến mức khó chịu, nên máy chiếu phim từng chiếu mỗi frame phim 2–3 lần. Ở 50Hz thì vừa đủ chịu được, vì vậy một số TV CRT châu Âu đã nhân đôi frame video 50Hz lên 100Hz, và kết quả là vật thể chuyển động đôi khi trông như thành hai. Để chuyển động mượt tối ưu và giảm mỏi mắt tối thiểu, lý tưởng là cần từ 70–75Hz trở lên, nhưng khi đó lại khó hiển thị video quay ở 60FPS mà không bị judder hoặc tearing
Trái với kỳ vọng rằng điều này sẽ khiến phương tiện thị giác có cảm giác chân thực hơn, trong game nó lại có xu hướng khiến video game trông như một bản xấp xỉ rẻ tiền của một bộ phim bị dựng quá tay
Điều này hợp lý với những chuyển động cực nhanh, lướt qua rất gần, hoặc đặc biệt là những chuyển động không thuộc góc nhìn của chính mình. Nhưng nó bị lạm dụng quá nhiều trong các tình huống như “nhân vật quay nhanh”
Khi bạn quay phắt đầu hoặc mắt, bạn không thấy một hình ảnh nhòe mà thấy hình ảnh mới, còn não thì bỏ qua dữ liệu trung gian. Có thể tự kiểm chứng bằng cách nhìn một mắt trong gương rồi chuyển tiêu điểm sang mắt còn lại. Bạn có thấy mắt hay khuôn mặt bị nhòe đi không?
Khi thêm blur lúc di chuyển góc nhìn trong game, nó chỉ làm chậm việc hiển thị tầm nhìn mới. Gây phân tâm và phi thực tế
Bài kiểm tra tốt hơn là vẫy ngón tay hoặc bàn tay thật nhanh và quan sát. Bạn sẽ thấy motion blur khi ngón tay chuyển động. Trong một số trường hợp còn có thể thấy các “khung hình” riêng lẻ dưới dạng dư ảnh. Ví dụ, nếu nhìn đèn hậu ô tô đời mới, LED không sáng liên tục mà nhấp nháy rất nhanh bằng PWM. Vì vậy ban đêm, khi nhìn đèn hậu và di chuyển mắt, bạn sẽ thấy một chuỗi các chấm chứ không phải một hình ảnh nhòe. Khi biết mẹo này, bạn có thể phân biệt đèn analog và PWM dựa vào việc nó trông nhòe hay thành các chấm đứt đoạn
Nhưng khi ở trong xe, hoặc đang bay trên không trong game, hình ảnh có thể bị méo trong lúc liếc nhìn. Điều tôi kỳ vọng là kiểu blur bị kéo theo khi tăng tốc, và hiệu ứng như vậy có thể khiến các cảnh tốc độ cao thú vị hơn nhiều. Vấn đề là motion blur gần như ở đâu cũng được triển khai rất tệ
Ba lỗi lớn nhất là làm nhòe vật thể quá xa, làm nhòe những thứ không nên bị nhòe, và làm nhòe toàn bộ cảnh. Lỗi thứ ba rốt cuộc cũng quy về lỗi thứ hai, nên thực ra có thể chỉ có hai lỗi. Điều quan trọng nhất là motion blur phải tinh tế. Motion blur đúng nghĩa không làm game trở nên mờ nhòe, mà khiến nó trông thực tế và mượt hơn
Nếu một vật thể di chuyển 50 pixel giữa các frame, độ rộng blur không nên vượt quá 50 pixel. Thực ra, để tinh tế hơn thì khoảng 25 pixel có lẽ hợp lý. Nhưng không hiểu vì lý do gì, các game đua xe lại thường phủ rất nhiều blur dạng xuyên tâm lên toàn bộ cảnh khi chạy nhanh, và cá nhân tôi thấy điều đó phá hỏng khung cảnh
Tương tự, các vật thể không chuyển động tương đối so với camera thì không nên có motion blur. Nhiều game sai ở điểm này. Khi xoay, chúng dùng hậu xử lý để làm nhòe cả cảnh. Nếu đó là một cảnh hoàn toàn tĩnh thì điều này hợp lý, và cũng là cách rất hiệu quả về chi phí tính toán. Nhưng nếu bạn đang xoay để bám theo một vật thể nào đó, vật thể đang được bám theo không nên bị nhòe. Trong game đua xe, nếu chiếc xe bên cạnh đang chạy cùng tốc độ với bạn thì chiếc xe đó không nên bị blur
Cách chắc chắn để có motion blur đúng là render liên tiếp nhiều frame hoàn chỉnh rồi trộn chúng lại, nhưng để trông đẹp thì cần rất nhiều mẫu. Nếu không, khi thứ như một đường dọc bay ngang qua màn hình, nó sẽ trông như một chuỗi các dải dọc thay vì blur mượt
Có lẽ cách tốt nhất là phương pháp lai. Render riêng từng vật thể trong cảnh, rồi áp dụng blur hậu xử lý cho từng vật thể theo hướng chuyển động tương đối so với camera. Tuy nhiên, xử lý thứ tự Z có thể là một thách thức lớn
Những lần hiếm hoi tôi có thể chơi game ở 120FPS, dù tiếc là máy chiếu bị giới hạn ở 60Hz, tôi vẫn thích chơi không có motion blur hơn
Có một phần tổng quan tốt ở [1]
Điều thú vị là cho đến trước khi bài báo kinh điển [2] về mô hình hóa hiệu suất màn trập ra đời năm 2005, tất cả các renderer dùng trong sản xuất VFX đều dùng shutter dạng hộp. Tức là màn trập mở tức thì, giữ mở trong khoảng thời gian được chỉ định, rồi đóng tức thì
Nếu xem các cảnh motion blur cực đoan trong những phim như “Jurassic Park” hay “The Mask”, đó là PhotoRealistic RenderMan dùng shutter dạng hộp
Trường hợp đầu tiên triển khai tham số hóa của [2] theo tỷ lệ 1:1 trong sản xuất là ở [3] vào cùng năm bài báo được công bố, và đến nay vẫn không thay đổi. Tác phẩm đầu tiên dùng nó là “Charlotte's Web”, và chỉ được áp dụng cho các nhân vật nhện do Rising Sun Pictures tạo bằng [3]
Pixar cũng thêm tính năng này vài năm sau, và trong [4] thì đã đẩy hơi quá tay. Ngày nay hầu hết các offline renderer đều có tính năng này và gọi là đường cong màn trập
[1] O. Navarro et al.: Motion Blur Rendering: State of the Art (https://citeseerx.ist.psu.edu/doc_view/pid/fc23fb525cafa8fe6...)
[2] Stephenson, Ian: Improving Motion Blur: Shutter Efficiency and Temporal Sampling (https://staffprofiles.bournemouth.ac.uk/display/journal-arti...)
[3] https://www.3delight.com/, đặc biệt xem https://nsi.readthedocs.io/en/latest/nodes.html
[4] https://renderman.pixar.com/resources/RenderMan_20/cameramod...
Có vẻ demo được tính trong không gian sRGB. Tức là đang dùng các giá trị độ sáng phi tuyến, nên phần lớn lý do vệt nhòe trông thiếu tự nhiên có lẽ đến từ đó
Nếu muốn mô phỏng hiện tượng vật lý, cần xử lý bằng giá trị độ sáng tuyến tính và chỉ chuyển sang sRGB ở bước cuối
Có thể khác nếu hiệu ứng phi tuyến trong nhận thức thị giác của con người triệt tiêu hoàn toàn điều này, nhưng nếu vậy thì ít nhất cũng phải nhắc đến điểm đó
Tôi sẽ kiểm tra lại và nếu đúng thì sẽ cập nhật các hình tương tác và nội dung bài. Shader “torusphere” chính có motion blur không thực tế và được chỉnh tay nên chắc là ổn, nhưng vài hình tương tác ở phần đầu áp dụng trực tiếp lý thuyết nên góp ý này có liên quan. Dù vậy, nhìn chung tôi không nghĩ nó làm mất hiệu lực ý tưởng cốt lõi của bài
Demo torus thật sự rất ấn tượng. Thật thú vị khi tốc độ khung hình cao thay đổi cách ta cảm nhận blur
Tôi đang dùng màn hình 240Hz, và trong hình 5 tôi không thấy các vòng tròn tách rời cho đến khoảng 12rad/s. Ngay cả ở 40rad/s, khi đang chuyển động tôi cũng không cảm nhận được khác biệt giữa tùy chọn màn trập truyền thống và màn trập sin
Chỉ riêng độ mượt của chuyển động chuột và độ trễ thấp đã khiến tôi rất khuyên dùng 240Hz. Quay lại con trỏ chuột 60Hz thật sự, thật sự rất khó
Có những người thật sự không bận tâm. Tôi cũng không hiểu lắm những tranh luận kiểu độ trễ đầu vào hay thánh chiến terminal emulator. Tôi không cảm nhận được khác biệt giữa làm việc trên framebuffer console và làm việc qua ssh có thêm 50ms
Tôi có thể nhận ra khác biệt giữa game 30FPS và 60FPS, nhưng chỉ khi chú ý nhìn. Miễn là ổn định và không nhảy qua nhảy lại giữa hai mức đó thì tôi không mấy quan tâm
Tuy nhiên, tôi tự hỏi liệu giao diện có chuyển tiếp mượt hơn sẽ tạo cảm giác ổn định hơn, và tần số quét cao có thể ảnh hưởng đến trạng thái tinh thần theo thời gian hay không
Nếu torus và quả cầu phía sau được tạo bằng motion blur thì chẳng phải chúng nên trong suốt một phần sao? Có cảm giác như đến một lúc nào đó chúng lại trở nên đục, nên trông hơi lạ
Vì thế tiêu đề mới là motion blur all the way down
Tuy nhiên ánh sáng do vật thể đang chuyển động phát ra phải thấp hơn vật thể đứng yên. Vì vậy khi quãng đường tăng lên, vật thể phải ngày càng tối hơn
Đây là nỗ lực rời khỏi việc mô phỏng camera phim và chuyển sang mô phỏng hệ thị giác của con người. Đó là một hướng hữu ích
Tức là rời khỏi việc bắt chước công nghệ cũ và tiến thêm một bước gần hơn với thực tại. Motion blur kiểu màn trập cũng có thể biến mất như ảnh in tông sepia, phim đen trắng 16FPS, hay bánh xe hình elip do màn trập cơ gây ra
Tái hiện hiện thực không phải là mục tiêu. Vì nó không thể đạt được
ambient.garden vừa lên trang nhất nên có lẽ bài này cũng được đưa lên. Đọc lại thì tôi thấy thật ra lẽ ra nó nên là hai bài viết
Phần đầu tôi vẫn thích. Nó đào sâu khá hợp lý vào motion blur là gì và về mặt lý thuyết nên là gì. Phần sau là một lời giải thích siêu cô đọng, hơi rối, về cách shader cho một animation “torusphere” cụ thể dựa trên motion blur hoạt động. Phần đó chủ yếu hữu ích, ít nhất với tôi, ở chỗ giúp đoạn code hiện tại không trở nên hoàn toàn không thể hiểu nổi. Nhìn lại thì đoạn chuyển giữa hai phần giống cảm giác nhảy xuống một hồ nước đóng băng hơn. Xin lỗi
May là không phải chỉ do ly vang tôi vừa uống
Tôi từng vài lần nghịch motion blur như một hàm chiếu của phần nhô 4 chiều, nhưng trong ngữ cảnh thực tế là video và texture thì cách đó trở nên thiếu thực tiễn so với lấy mẫu phần cứng có kèm caching. Dù vậy, đọc bài này lại khiến tôi nghĩ “hay thử thêm đúng một lần nữa nhỉ”
Demo so sánh thời gian thực thật tuyệt vời. Khi theo đến điểm đó, trong đầu tôi cảm thấy mình đã “hiểu”, nhưng khi có thể tự bật/tắt motion blur, sự khác biệt trở nên thật sự rõ ràng
Sau khi thấy motion blur all the way down, không hiểu sao tôi lại nghĩ đến lý thuyết dây, nguyên tử, và cả việc vũ trụ được tạo ra như thế nào
Tất nhiên càng đi sâu thì mọi thứ càng trở nên kỳ lạ