ಮಲ್ಟಿಪ್ಲೇಯರ್ ಆನ್ಲೈನ್ ಗೇಮ್ VRChat ನ ವರ್ಚುವಲ್ 3D ಸ್ಪೇಸ್ನಲ್ಲಿ Linux ನ ಉಡಾವಣೆಯನ್ನು ಆಯೋಜಿಸುವ ಪ್ರಯೋಗದ ಫಲಿತಾಂಶಗಳನ್ನು ಪ್ರಕಟಿಸಲಾಗಿದೆ, ಇದು ತಮ್ಮದೇ ಆದ ಶೇಡರ್ಗಳೊಂದಿಗೆ 3D ಮಾದರಿಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಕಲ್ಪಿತ ಕಲ್ಪನೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು, RISC-V ಆರ್ಕಿಟೆಕ್ಚರ್ನ ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ರಚಿಸಲಾಗಿದೆ, GPU ಭಾಗದಲ್ಲಿ ಪಿಕ್ಸೆಲ್ (ಫ್ರಾಗ್ಮೆಂಟ್) ಶೇಡರ್ ರೂಪದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗಿದೆ (VRChat ಕಂಪ್ಯೂಟೇಶನಲ್ ಶೇಡರ್ಗಳು ಮತ್ತು UAV ಅನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ). ಎಮ್ಯುಲೇಟರ್ ಕೋಡ್ ಅನ್ನು MIT ಪರವಾನಗಿ ಅಡಿಯಲ್ಲಿ ಪ್ರಕಟಿಸಲಾಗಿದೆ.
ಎಮ್ಯುಲೇಟರ್ ಸಿ ಭಾಷೆಯಲ್ಲಿನ ಅನುಷ್ಠಾನವನ್ನು ಆಧರಿಸಿದೆ, ಅದರ ರಚನೆಯು, ರಸ್ಟ್ ಭಾಷೆಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ ಕನಿಷ್ಠ ಎಮ್ಯುಲೇಟರ್ riscv-rust ನ ಬೆಳವಣಿಗೆಗಳನ್ನು ಬಳಸಿದೆ. ಸಿದ್ಧಪಡಿಸಿದ C ಕೋಡ್ ಅನ್ನು HLSL ನಲ್ಲಿ ಪಿಕ್ಸೆಲ್ ಶೇಡರ್ಗೆ ಅನುವಾದಿಸಲಾಗಿದೆ, VRChat ಗೆ ಲೋಡ್ ಮಾಡಲು ಸೂಕ್ತವಾಗಿದೆ. ಎಮ್ಯುಲೇಟರ್ rv32imasu ಸೂಚನಾ ಸೆಟ್ ಆರ್ಕಿಟೆಕ್ಚರ್, SV32 ಮೆಮೊರಿ ನಿರ್ವಹಣಾ ಘಟಕ ಮತ್ತು ಕನಿಷ್ಠ ಸೆಟ್ ಪೆರಿಫೆರಲ್ಗಳಿಗೆ (UART ಮತ್ತು ಟೈಮರ್) ಸಂಪೂರ್ಣ ಬೆಂಬಲವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸಿದ್ಧಪಡಿಸಿದ ಸಾಮರ್ಥ್ಯಗಳು Linux ಕರ್ನಲ್ 5.13.5 ಮತ್ತು ಮೂಲಭೂತ BusyBox ಕಮಾಂಡ್ ಲೈನ್ ಪರಿಸರವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಕಾಗುತ್ತದೆ, ಅದರೊಂದಿಗೆ ನೀವು VRChat ವರ್ಚುವಲ್ ಪ್ರಪಂಚದಿಂದ ನೇರವಾಗಿ ಸಂವಹನ ಮಾಡಬಹುದು.
ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ತನ್ನದೇ ಆದ ಡೈನಾಮಿಕ್ ಟೆಕ್ಸ್ಚರ್ (ಯೂನಿಟಿ ಕಸ್ಟಮ್ ರೆಂಡರ್ ಟೆಕ್ಸ್ಚರ್) ರೂಪದಲ್ಲಿ ಶೇಡರ್ನಲ್ಲಿ ಅಳವಡಿಸಲಾಗಿದೆ, ಇದು VRChat ಗಾಗಿ ಒದಗಿಸಲಾದ ಉಡಾನ್ ಸ್ಕ್ರಿಪ್ಟ್ಗಳಿಂದ ಪೂರಕವಾಗಿದೆ, ಅದರ ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಸಮಯದಲ್ಲಿ ಎಮ್ಯುಲೇಟರ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. RAM ನ ವಿಷಯಗಳು ಮತ್ತು ಎಮ್ಯುಲೇಟೆಡ್ ಸಿಸ್ಟಮ್ನ ಪ್ರೊಸೆಸರ್ ಸ್ಥಿತಿಯನ್ನು ವಿನ್ಯಾಸದ ರೂಪದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, 2048x2048 ಪಿಕ್ಸೆಲ್ಗಳ ಗಾತ್ರ. ಎಮ್ಯುಲೇಟೆಡ್ ಪ್ರೊಸೆಸರ್ 250 kHz ಆವರ್ತನದಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಲಿನಕ್ಸ್ ಜೊತೆಗೆ, ಎಮ್ಯುಲೇಟರ್ ಮೈಕ್ರೋಪೈಥಾನ್ ಅನ್ನು ಸಹ ಚಲಾಯಿಸಬಹುದು.
ಓದುವಿಕೆ ಮತ್ತು ಬರೆಯುವಿಕೆಗೆ ಬೆಂಬಲದೊಂದಿಗೆ ನಿರಂತರ ಡೇಟಾ ಸಂಗ್ರಹಣೆಯನ್ನು ರಚಿಸಲು, ಶೇಡರ್ನಿಂದ ಉತ್ಪತ್ತಿಯಾಗುವ ಆಯತಾಕಾರದ ಪ್ರದೇಶಕ್ಕೆ ಬಂಧಿಸಲಾದ ಕ್ಯಾಮೆರಾ ವಸ್ತುವನ್ನು ಬಳಸುವುದು ಮತ್ತು ರೆಂಡರ್ ಮಾಡಿದ ವಿನ್ಯಾಸದ ಔಟ್ಪುಟ್ ಅನ್ನು ಶೇಡರ್ ಇನ್ಪುಟ್ಗೆ ನಿರ್ದೇಶಿಸುವುದು ಒಂದು ಟ್ರಿಕ್ ಆಗಿದೆ. ಈ ರೀತಿಯಾಗಿ, ಮುಂದಿನ ಫ್ರೇಮ್ ಅನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದಾಗ ಪಿಕ್ಸೆಲ್ ಶೇಡರ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಬರೆದ ಯಾವುದೇ ಪಿಕ್ಸೆಲ್ ಅನ್ನು ಓದಬಹುದು.
ಪಿಕ್ಸೆಲ್ ಶೇಡರ್ಗಳನ್ನು ಅನ್ವಯಿಸುವಾಗ, ಪ್ರತಿ ಟೆಕ್ಸ್ಚರ್ ಪಿಕ್ಸೆಲ್ಗೆ ಸಮಾನಾಂತರವಾಗಿ ಪ್ರತ್ಯೇಕ ಶೇಡರ್ ನಿದರ್ಶನವನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತದೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಅನುಷ್ಠಾನವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸಂಕೀರ್ಣಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಸಂಪೂರ್ಣ ಎಮ್ಯುಲೇಟೆಡ್ ಸಿಸ್ಟಮ್ನ ಸ್ಥಿತಿಯ ಪ್ರತ್ಯೇಕ ಸಮನ್ವಯ ಮತ್ತು ಸಂಸ್ಕರಿಸಿದ ಪಿಕ್ಸೆಲ್ನ ಸ್ಥಾನವನ್ನು ಅದರಲ್ಲಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾದ ಸಿಪಿಯು ಸ್ಥಿತಿಯೊಂದಿಗೆ ಅಥವಾ ಎಮ್ಯುಲೇಟೆಡ್ ಸಿಸ್ಟಮ್ನ RAM ನ ವಿಷಯಗಳೊಂದಿಗೆ ಹೋಲಿಕೆ ಮಾಡಬೇಕಾಗುತ್ತದೆ (ಪ್ರತಿ ಪಿಕ್ಸೆಲ್ 128 ಅನ್ನು ಎನ್ಕೋಡ್ ಮಾಡಬಹುದು ಮಾಹಿತಿಯ ತುಣುಕುಗಳು). ಶೇಡರ್ ಕೋಡ್ಗೆ ಪರ್ಲ್ ಪ್ರಿಪ್ರೊಸೆಸರ್ perlpp ಅನ್ನು ಬಳಸಲಾದ ಅನುಷ್ಠಾನವನ್ನು ಸರಳಗೊಳಿಸಲು, ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಚೆಕ್ಗಳನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿದೆ.
ಮೂಲ: opennet.ru