SceneKit material filter

Originator:miles.chris
Number:rdar://13322024 Date Originated:01-Mar-2013
Status:Open Resolved:
Product:Mac OS X SDK Product Version:10.8.2
Classification:Other Bug Reproducible:Always
 
Summary:

With SceneKit, setting a diffuse material magnificationFilter to "SCNNoFiltering" is ignored when the integrated GPU (Intel HD 3000/4000) is active. It only appears to work when the discrete GPU (such as NVIDIA GeForce GT 650M) is active.

As a result, a magnificationFilter setting of "SCNNoFiltering" does not work on Macs with only integrated GPUs (such as MacBook Air or 13" MacBook Pro) and rendering output differs to that of Macs with discrete GPUs (when active).


Steps to Reproduce:

1. Create a SceneKit scene, add a node with geometry, configure the geometry's diffuse material magnificationFilter to "SCNNoFiltering", assign an image to the diffuse material. For example:

    SCNPlane *plane = [SCNPlane planeWithWidth:width height:height];
    plane.firstMaterial.diffuse.magnificationFilter = SCNNoFiltering;
    plane.firstMaterial.diffuse.contents = anImage;
    SCNNode *node = [SCNNode nodeWithGeometry:plane];

2. Render the scene in a SCNView, with scale > 1.0 (i.e. magnified).

3. Run on a 15" Retina MacBook Pro with discrete (NVIDIA) GPU active. Note that rendered image texture is not filtered/aliased.

4. Run on a MacBook Air (or any Mac with integrated Intel GPU active). Note that rendered image texture is still being filtered/aliased.


Expected Results:

The output on a Mac with integrated GPU active should not be filtered/aliased (as per "SCNNoFiltering" setting).
The output on a Mac with integrated GPU active should look the same as when rendered on a discrete GPU.


Actual Results:

The output on a Mac with integrated GPU active is filtered/aliased, even though the material is configured not to be.
The output on a Mac with integrated GPU active is not the same as when rendered on a discrete GPU (even on the same machine).


Regression:

n/a


Notes:


29-Mar-2013 04:28 PM Chris Miles:
I was incorrectly using "SCNNoFiltering" for the magnificationFilter when I should have been using "SCNNearestFiltering".

However, the problem still occurs as described when using "SCNNearestFiltering".

In summary: The issue still occurs as described originally. Simply substitute "SCNNearestFiltering" for "SCNNoFiltering" in the description.

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!