How to make SCNSphere with a UIImage diffuse contents not care about lighting but simply show the original...
I'm trying to add a global sphere to my scene which has a skybox image applied to it. The issue is the lighting in the scene directly impacts its presentation. I'd like the applied image to present exactly as designed; essentially lighting agnostic.
My assumption was I could modify the SCNMaterial to make this work but I can't figure out what settings I should use. My alternative solution is to add a ton of spot SCNLights to the scene and point them at the sphere. I'd like to avoid this.
let sphere = SCNSphere(radius: 2000.0)
sphere.firstMaterial?.isDoubleSided = true
sphere.firstMaterial?.diffuse.contents = UIImage(named: "skybox")
let sphereNode = SCNNode(geometry: sphere)
sphereNode.castsShadow = false
sphereNode.position = SCNVector3Make(0, 0, 0)
scene.rootNode.addChildNode(sphereNode)
I know this can be solved with SCNScenes background.content but we're using an orthographic camera which disables the default skybox functionality. So, as an aside, if you know how to make the default skybox work with an orthographic camera that would also solve this problem. See Using Cube Map Textures for skybox specs.
swift sprite-kit
add a comment |
I'm trying to add a global sphere to my scene which has a skybox image applied to it. The issue is the lighting in the scene directly impacts its presentation. I'd like the applied image to present exactly as designed; essentially lighting agnostic.
My assumption was I could modify the SCNMaterial to make this work but I can't figure out what settings I should use. My alternative solution is to add a ton of spot SCNLights to the scene and point them at the sphere. I'd like to avoid this.
let sphere = SCNSphere(radius: 2000.0)
sphere.firstMaterial?.isDoubleSided = true
sphere.firstMaterial?.diffuse.contents = UIImage(named: "skybox")
let sphereNode = SCNNode(geometry: sphere)
sphereNode.castsShadow = false
sphereNode.position = SCNVector3Make(0, 0, 0)
scene.rootNode.addChildNode(sphereNode)
I know this can be solved with SCNScenes background.content but we're using an orthographic camera which disables the default skybox functionality. So, as an aside, if you know how to make the default skybox work with an orthographic camera that would also solve this problem. See Using Cube Map Textures for skybox specs.
swift sprite-kit
Have you looked at thelightingModelproperty ofSCNMaterial?
– 0x141E
Nov 24 '18 at 9:36
add a comment |
I'm trying to add a global sphere to my scene which has a skybox image applied to it. The issue is the lighting in the scene directly impacts its presentation. I'd like the applied image to present exactly as designed; essentially lighting agnostic.
My assumption was I could modify the SCNMaterial to make this work but I can't figure out what settings I should use. My alternative solution is to add a ton of spot SCNLights to the scene and point them at the sphere. I'd like to avoid this.
let sphere = SCNSphere(radius: 2000.0)
sphere.firstMaterial?.isDoubleSided = true
sphere.firstMaterial?.diffuse.contents = UIImage(named: "skybox")
let sphereNode = SCNNode(geometry: sphere)
sphereNode.castsShadow = false
sphereNode.position = SCNVector3Make(0, 0, 0)
scene.rootNode.addChildNode(sphereNode)
I know this can be solved with SCNScenes background.content but we're using an orthographic camera which disables the default skybox functionality. So, as an aside, if you know how to make the default skybox work with an orthographic camera that would also solve this problem. See Using Cube Map Textures for skybox specs.
swift sprite-kit
I'm trying to add a global sphere to my scene which has a skybox image applied to it. The issue is the lighting in the scene directly impacts its presentation. I'd like the applied image to present exactly as designed; essentially lighting agnostic.
My assumption was I could modify the SCNMaterial to make this work but I can't figure out what settings I should use. My alternative solution is to add a ton of spot SCNLights to the scene and point them at the sphere. I'd like to avoid this.
let sphere = SCNSphere(radius: 2000.0)
sphere.firstMaterial?.isDoubleSided = true
sphere.firstMaterial?.diffuse.contents = UIImage(named: "skybox")
let sphereNode = SCNNode(geometry: sphere)
sphereNode.castsShadow = false
sphereNode.position = SCNVector3Make(0, 0, 0)
scene.rootNode.addChildNode(sphereNode)
I know this can be solved with SCNScenes background.content but we're using an orthographic camera which disables the default skybox functionality. So, as an aside, if you know how to make the default skybox work with an orthographic camera that would also solve this problem. See Using Cube Map Textures for skybox specs.
swift sprite-kit
swift sprite-kit
asked Nov 23 '18 at 1:39
thattysonthattyson
594613
594613
Have you looked at thelightingModelproperty ofSCNMaterial?
– 0x141E
Nov 24 '18 at 9:36
add a comment |
Have you looked at thelightingModelproperty ofSCNMaterial?
– 0x141E
Nov 24 '18 at 9:36
Have you looked at the
lightingModel property of SCNMaterial?– 0x141E
Nov 24 '18 at 9:36
Have you looked at the
lightingModel property of SCNMaterial?– 0x141E
Nov 24 '18 at 9:36
add a comment |
1 Answer
1
active
oldest
votes
As it turns out, skybox images work with an orthographic camera only on-device, not on-simulator. Perspective cameras allow skybox images to work on both simulator and device. We had assumed the simulator was okay to test on since the skybox image worked initially when we had a perspective camera.
TL;DR Running the app on a physical device shows the skybox for an orthographic camera; simulator does not.
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%2f53439722%2fhow-to-make-scnsphere-with-a-uiimage-diffuse-contents-not-care-about-lighting-bu%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
As it turns out, skybox images work with an orthographic camera only on-device, not on-simulator. Perspective cameras allow skybox images to work on both simulator and device. We had assumed the simulator was okay to test on since the skybox image worked initially when we had a perspective camera.
TL;DR Running the app on a physical device shows the skybox for an orthographic camera; simulator does not.
add a comment |
As it turns out, skybox images work with an orthographic camera only on-device, not on-simulator. Perspective cameras allow skybox images to work on both simulator and device. We had assumed the simulator was okay to test on since the skybox image worked initially when we had a perspective camera.
TL;DR Running the app on a physical device shows the skybox for an orthographic camera; simulator does not.
add a comment |
As it turns out, skybox images work with an orthographic camera only on-device, not on-simulator. Perspective cameras allow skybox images to work on both simulator and device. We had assumed the simulator was okay to test on since the skybox image worked initially when we had a perspective camera.
TL;DR Running the app on a physical device shows the skybox for an orthographic camera; simulator does not.
As it turns out, skybox images work with an orthographic camera only on-device, not on-simulator. Perspective cameras allow skybox images to work on both simulator and device. We had assumed the simulator was okay to test on since the skybox image worked initially when we had a perspective camera.
TL;DR Running the app on a physical device shows the skybox for an orthographic camera; simulator does not.
answered Dec 19 '18 at 21:43
thattysonthattyson
594613
594613
add a comment |
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%2f53439722%2fhow-to-make-scnsphere-with-a-uiimage-diffuse-contents-not-care-about-lighting-bu%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
Have you looked at the
lightingModelproperty ofSCNMaterial?– 0x141E
Nov 24 '18 at 9:36