У меня есть модель Collada, которую я загружаю в Scenekit. Когда я выполняю hittest на модели, я могу получить координаты текстуры удаленной модели.IOS8 Scenekit painting на текстуре с координатами текстуры
С этими координатами текстуры я смогу заменить текстурные координаты цветом. Таким образом, я смогу нарисовать модель
Исправьте меня, если я ошибаюсь до сих пор.
До сих пор я читал много статей, но я просто не понимаю, как работают мои шейдеры. (Хотя я получил некоторые напуганные эффекты ;-)
Моя вершинный шейдер:
precision highp float;
attribute vec4 position;
attribute vec2 textureCoordinate;
attribute vec2 aTexureCoordForColor; //coordinates from the hittest
uniform mat4 modelViewProjection;
varying vec2 aTexureCoordForColorVarying; // passing to the fragment shader here
varying vec2 texCoord;
void main(void) {
// Pass along to the fragment shader
texCoord = textureCoordinate;
aTexureCoordForColorVarying = aTexureCoordForColor; //assigning here
// output the projected position
gl_Position = modelViewProjection * position;
}
мой фрагмент шейдера
precision highp float;
uniform sampler2D yourTexture;
uniform vec2 uResolution;
uniform int uTexureCoordsCount;
varying vec2 texCoord;
varying vec2 aTexureCoordForColorVarying;
void main(void) {
??????????? no idea anymore what to do here
gl_FragColor = texture2D(yourTexture, texCoord);
//
Если вам нужно больше кода, пожалуйста, дайте мне знать.
Wow ... это самая лучшая информация до сих пор ... спасибо. Я буду работать с этой информацией и дам вам знать, что сработало лучше всего. – Vilois
Yep .. спасибо .... все стало намного понятнее ..... Я добавил shaderModifier, немного взломал ваш код выше, но в целом это то же самое ..... большое вам спасибо – Vilois
@rickster ваш ответ ясен, и я подумал, что это поможет мне решить мою проблему.Это не сработало, поэтому я разместил вопрос по адресу http://stackoverflow.com/questions/38999782/how-to-use-a-shadermodifier-to-alter-the-color-of-pecific-triangles -in-a-scngeo в надежде, что кто-то вроде вас может помочь. BTW, первая ссылка «этот ответ», которую вы предоставили, фактически ссылается на ту же «ссылку SCNShadable»; является преднамеренным. Кроме того, в вашей последней заметке вы упоминаете _surface.color, и я думаю, вы имели в виду _surface.diffuse. – PKCLsoft