Giới thiệu
- Texture XOR là một loại texture có thể tạo ra một cách đơn giản, hữu ích cho mục đích thử nghiệm.
- Không được khuyến nghị dùng nhiều trong demo hay game.
- Hữu ích khi cần kiểm thử nhanh texture mapper.
Texture XOR
- Texture XOR được tạo bằng cách thực hiện phép XOR trên tọa độ x và y của pixel hiện tại.
- Có thể triển khai trong C++ bằng toán tử
^.
- Kích thước texture phải là lũy thừa của 2. Nếu không, chất lượng sẽ giảm.
- Giá trị màu nằm trong khoảng từ 0 đến 255, và nếu kích thước texture nhỏ hơn 256 thì sẽ tối hơn.
- Nếu kích thước lớn hơn 256 thì cần giới hạn màu ở mức 256.
Màu sắc
- Có thể thử nhiều màu texture XOR khác nhau bằng cách đặt các giá trị R, G, B khác nhau.
- Cũng có thể dùng giá trị XOR làm sắc độ bằng hàm
HSVtoRGB.
AND và OR
- Các toán tử AND và OR cũng tạo ra những texture tương tự.
- Toán tử AND chỉ trả về 1 khi cả hai bit đều là 1.
- Toán tử OR trả về 1 khi ít nhất một trong hai bit là 1.
- Texture AND thì tối, còn texture OR thì sáng.
Kết luận
- Texture XOR hữu ích để kiểm thử trình kết xuất texture, nhưng không phù hợp cho nghệ thuật hay game.
- Có thể dùng dưới dạng texture 3D (
x ^ y ^ z) để kiểm thử trình kết xuất texture hành tinh.
1 bình luận
Ý kiến trên Hacker News
Một người dùng đã tạo một chương trình sinh ảnh bằng hợp ngữ x86 với màu 1 bit. Chương trình này dùng
parity(x ^ y)thay vìx ^ y, áp dụng màu khác nhau khi có số bit 1 chẵn và khi không phải vậy. Nhờ đó tạo ra hiệu ứng lát gạch gần như lặp lại nhưng không hoàn toàn. Chương trình được viết bằng fasm vào năm 2019 và xuất ra tệp XPM2.Khi còn học cấp hai, một người dùng chỉ có thể làm các ứng dụng CLI đơn giản, nhưng nhờ Lode's Computer Graphics Tutorial đã học được cách mở cửa sổ và vẽ đồ họa. Từ đó có thể tái tạo các game retro như Pacman, Snake và Space Invaders. Trang web này đã giúp họ bắt đầu sự nghiệp phát triển phần mềm từ sớm.
Các hiệu ứng tương tự có thể được tạo hoạt ảnh bằng hàm như
color = (y == (x ^ t))được gọi là "munching squares". Nó được viết cho PDP-1 vào đầu những năm 1960, và có người từng thấy nó được trình diễn trên chiếc PDP-1 của Computer History Museum. Màn hình của PDP-1 chỉ có thể vẽ các điểm chứ không dùng framebuffer bitmap, nhưng tận dụng độ lưu quang dài của màn hình để tạo ra texture XOR.Có ý kiến cho rằng nó gợi nhớ đến texture khoảng cách Hamming. Một người dùng đã dùng texture này để làm chăn quilt, dùng màu cầu vồng và treo lên tường làm đồ trang trí.
Một sự thật thú vị được chia sẻ là mỗi điểm trong texture XOR là số nguyên nhỏ nhất không xuất hiện ở phía trên hoặc bên trái của nó.
Dwitter là một trang web dành cho các ví dụ JavaScript một dòng dùng canvas, nơi người dùng có thể chia sẻ các tác phẩm bị giới hạn trong 140 byte.
Có người chia sẻ cách biểu diễn mẫu này bằng ngôn ngữ J. Có thể xem nó trong playground của phần mềm J.
Dù đã 20 năm trôi qua, vẫn còn rất nhiều thông tin hữu ích, và đặc biệt có thể hữu dụng khi làm việc với shader.
Có người nói rằng mình đã học ray tracing qua trang web của Lode và đến nay vẫn rất thích bố cục của trang này.