Показать сообщение отдельно
Старый 09.01.2013, 04:56
loover вне форума Посмотреть профиль Отправить личное сообщение для loover Найти все сообщения от loover
  № 3  
Ответить с цитированием
loover
 
Аватар для loover

Регистрация: Mar 2009
Сообщений: 357
Nooob, да, дело оказалось в перепутанных значениях uv. поправил и текстура отображается нормально. но возникла другая проблема. текстура непропорционально растягивается, т.к. выходной буфер имеет размер сцены (550х400), битмапдата для текстуры имеет тот же размер, а вот текстура - 1024х512 (т.к. ее размеры должны быть кратны 2). явно не соответствие. пока просто увеличил буфер до размера текстуры, но это явно не то. матрица сможет этому помочь?

Код AS3:
var vertices:Vector.<Number> = Vector.<Number>([
										 -1, -1, 0, 0, 1, 
										 -1, 1, 0, 0, 0,
										 1, 1, 0, 1, 0,
										 1, -1 , 0, 1, 1]);
vertexbuffer = context3d.createVertexBuffer(4, 5);
vertexbuffer.uploadFromVector(vertices, 0, 4);
 
var indices:Vector.<uint> = Vector.<uint>([0, 1, 2, 2, 3, 0]);
indexbuffer = context3d.createIndexBuffer(6);
indexbuffer.uploadFromVector (indices, 0, 6);
насчет производительности. vertex shader и fragment shader заполняю так:
Код AS3:
vertexShader.assemble(Context3DProgramType.VERTEX, "mov op, va0 \n" + "mov v0, va1");
fragmentShader.assemble(Context3DProgramType.FRAGMENT,  "tex oc, v0, fs0 <2d,linear>");