How to get other app's pixel output in Unity?
Is it possible, using Unity 3D, to grab the pixel output of another, external app's window? So that one could say snapshot a game's pixels at a given time to analyze the color values etc. Thanks!
unity3d
add a comment |
Is it possible, using Unity 3D, to grab the pixel output of another, external app's window? So that one could say snapshot a game's pixels at a given time to analyze the color values etc. Thanks!
unity3d
add a comment |
Is it possible, using Unity 3D, to grab the pixel output of another, external app's window? So that one could say snapshot a game's pixels at a given time to analyze the color values etc. Thanks!
unity3d
Is it possible, using Unity 3D, to grab the pixel output of another, external app's window? So that one could say snapshot a game's pixels at a given time to analyze the color values etc. Thanks!
unity3d
unity3d
asked Jan 2 at 11:44


Philipp LenssenPhilipp Lenssen
3,46194057
3,46194057
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
It is not possible using built in Unity APIs.
It is possible using OS specific APIs. For Windows, the Desktop Duplication API is the ideal source of pixel data for other applications. Documentation can be found https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/desktop-dup-api
You would need to create a DLL that uses this API and exposes the needed data to your Unity app.
An active project that makes this easier to consume within Unity is located at
https://github.com/hecomi/uDesktopDuplication
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54005750%2fhow-to-get-other-apps-pixel-output-in-unity%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
It is not possible using built in Unity APIs.
It is possible using OS specific APIs. For Windows, the Desktop Duplication API is the ideal source of pixel data for other applications. Documentation can be found https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/desktop-dup-api
You would need to create a DLL that uses this API and exposes the needed data to your Unity app.
An active project that makes this easier to consume within Unity is located at
https://github.com/hecomi/uDesktopDuplication
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
add a comment |
It is not possible using built in Unity APIs.
It is possible using OS specific APIs. For Windows, the Desktop Duplication API is the ideal source of pixel data for other applications. Documentation can be found https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/desktop-dup-api
You would need to create a DLL that uses this API and exposes the needed data to your Unity app.
An active project that makes this easier to consume within Unity is located at
https://github.com/hecomi/uDesktopDuplication
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
add a comment |
It is not possible using built in Unity APIs.
It is possible using OS specific APIs. For Windows, the Desktop Duplication API is the ideal source of pixel data for other applications. Documentation can be found https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/desktop-dup-api
You would need to create a DLL that uses this API and exposes the needed data to your Unity app.
An active project that makes this easier to consume within Unity is located at
https://github.com/hecomi/uDesktopDuplication
It is not possible using built in Unity APIs.
It is possible using OS specific APIs. For Windows, the Desktop Duplication API is the ideal source of pixel data for other applications. Documentation can be found https://docs.microsoft.com/en-us/windows/desktop/direct3ddxgi/desktop-dup-api
You would need to create a DLL that uses this API and exposes the needed data to your Unity app.
An active project that makes this easier to consume within Unity is located at
https://github.com/hecomi/uDesktopDuplication
answered Jan 2 at 14:37
Mike dgMike dg
4,11721924
4,11721924
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
add a comment |
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
1
1
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
Thank you very much, I will try this! Do I understand correctly that using uDesktopDuplication, one would then not have to do the Create DLL step you describe?
– Philipp Lenssen
Jan 2 at 18:39
1
1
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
@PhilippLenssen if you download the .unitypackage from the releases page, the author has gone through the trouble of building the DLL as well as providing a reasonable Unity C# interface.
– Mike dg
Jan 2 at 20:09
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54005750%2fhow-to-get-other-apps-pixel-output-in-unity%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown