All Projects → FransBouma → Injectablegenericcamerasystem

FransBouma / Injectablegenericcamerasystem

Licence: bsd-2-clause
This is a generic camera system to be used as the base for cameras for taking screenshots within games. The main purpose of the system is to hijack the in-game 3D camera by overwriting values in its camera structure with our own values so we can control where the camera is located, it's pitch/yaw/roll values, its FoV and the camera's look vector.

Projects that are alternatives of or similar to Injectablegenericcamerasystem

Singlefile
Web Extension for Firefox/Chrome/MS Edge and CLI tool to save a faithful copy of an entire web page in a single HTML file
Stars: ✭ 4,417 (+797.76%)
Mutual labels:  screenshot
Termux Archlinux
You can use setupTermuxArch.bash 📲 to install Arch Linux in Termux on Amazon, Android, Chromebook and Windows. https://sdrausty.github.io/termux-archlinux/
Stars: ✭ 384 (-21.95%)
Mutual labels:  screenshot
Shotlooter
a recon tool that finds sensitive data inside the screenshots uploaded to prnt.sc
Stars: ✭ 451 (-8.33%)
Mutual labels:  screenshot
Celerystalk
An asynchronous enumeration & vulnerability scanner. Run all the tools on all the hosts.
Stars: ✭ 333 (-32.32%)
Mutual labels:  screenshot
Slurp
Select a region in a Wayland compositor
Stars: ✭ 350 (-28.86%)
Mutual labels:  screenshot
1click Webpage Screenshot
Entire page Screenshot extension for Google Chrome. I'm developing open source extension for Google Chrome. All extension are free for use. Let's make Chrome great again!
Stars: ✭ 406 (-17.48%)
Mutual labels:  screenshot
Screencapture
不root实现Android屏幕截图
Stars: ✭ 288 (-41.46%)
Mutual labels:  screenshot
Chromda
λ 🖼️ Chromda is an AWS Lambda function for capturing screenshots of websites.
Stars: ✭ 481 (-2.24%)
Mutual labels:  screenshot
Falcon
Take Android screenshots with Falcons bright eye!
Stars: ✭ 362 (-26.42%)
Mutual labels:  screenshot
Surfboard
Surfboard is a delightful onboarding framework for iOS.
Stars: ✭ 434 (-11.79%)
Mutual labels:  screenshot
Screeenly
📸 Screenshot as a Service
Stars: ✭ 336 (-31.71%)
Mutual labels:  screenshot
Setuna2
A best screenshot small tool (support high dpi screenshots) 一款好用的截图小工具(支持高分屏截图)
Stars: ✭ 342 (-30.49%)
Mutual labels:  screenshot
Docker Puppeteer
docker image with Google Puppeteer installed
Stars: ✭ 415 (-15.65%)
Mutual labels:  screenshot
Screenshott
[Android Library] Take a screenshot of your view layout , programmatically!
Stars: ✭ 311 (-36.79%)
Mutual labels:  screenshot
Storycap
A Storybook Addon, Save the screenshot image of your stories 📷 via puppeteer.
Stars: ✭ 451 (-8.33%)
Mutual labels:  screenshot
Browsershot
Convert HTML to an image, PDF or string
Stars: ✭ 3,526 (+616.67%)
Mutual labels:  screenshot
Tev
High dynamic range (HDR) image comparison tool for graphics people. With an emphasis on OpenEXR images.
Stars: ✭ 384 (-21.95%)
Mutual labels:  screenshot
Artplayer
🎨 ArtPlayer.js is a modern and full featured HTML5 video player
Stars: ✭ 484 (-1.63%)
Mutual labels:  screenshot
Ffcast
Run command on rectangular screen regions
Stars: ✭ 478 (-2.85%)
Mutual labels:  screenshot
Puppetron
Puppeteer (Headless Chrome Node API)-based rendering solution.
Stars: ✭ 429 (-12.8%)
Mutual labels:  screenshot

Injectable Generic Camera System

This is a generic injectable camera system which is used as a base for cameras for taking screenshots within games. The main purpose of the system is to hijack the in-game 3D camera by overwriting values in its camera structure with our own values so we can control where the camera is located, it's pitch/yaw/roll values, its FoV and the camera's look vector. Some camera implementations have additional features like timestop.

It's written in C++ with some x86/x64 assembler to be able to intercept the location of the 3D camera in the game. The system is initially designed for 64bit hosts as all games are 64bit nowadays, but has been reworked to be used for 32bit games too.

Re-hosting binaries

All binaries of my tools are available through my Patreon, unless stated otherwise. You're not allowed to re-host the binaries on other modsites, like Nexus Mods.

Folder structure description

In the folder Cameras you'll several implementations of the system, adapted for specific games.

The cameras don't use a shared piece of code as in general cameras have to be adapted to a game pretty deeply and I didn't want to make a big configurable ball. Additionally, cameras are often written once and perhaps fixed once or twice when the game is updated, but that's it. Copying the code for each camera and adapting it makes possible to add new features to future cameras without affecting the older ones.

Requirements to build the code

To build the code, you need to have VC++ 2017 or higher, newer cameras need VC++ 2019. Additionally you need to have installed the Windows SDK, at least the windows 8 version. The VC++ installer should install this. The SDK is needed for DirectXMath.h

External dependencies

There's an external dependency on MinHook through a git submodule. This should be downloaded automatically when you clone the repo. The camera uses DirectXMath for the 3D math, which is a self-contained .h file, from the Windows SDK.

Commercial usage

These cameras and its system are made by volunteers in their spare time. If you use these camera for commercial activities (e.g. you make money with the shots or videos you produce with this camera), consider a donation or joining my Patreon

Support

If you want support for a camera, please join my Patreon where I have a tier available for support on cameras.

Camera's released:

In-depth article about IGCS and how to create camera tools

I've written a long, in-depth article about how to create camera tools and how IGCS works on my blog.

Acknowledgements

Some camera code uses MinHook by Tsuda Kageyu.

Patreon

I do this for fun, not profit, but can't create cameras for games I don't own. I've therefore setup a Patreon page which allows you to safely support my work now and in the future and in return you get access to binary releases, early access to newer cameras and if you opt for that, support.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].