我已经创建了一个自定义着色器,可以使用具有4种不同纹理的BlendMap,但我无法使用阴影/闪电效果来处理它.
我在这里错过了什么?或者是否有其他方法可以实现相同的功能?
下面的网格创建方法显示所有纹理正确混合.
// Creates the ground
function CreateGround() {
var uniforms = THREE.UniformsUtils.merge([
THREE.UniformsLib["lights"],
THREE.UniformsLib["shadowmap"],
{
TextureBackground: { type: "t", value: null },
TextureR: { type: "t", value: null },
TextureG: { type: "t", value: null },
TextureB: { type: "t", value: null },
TextureBlendMap: { type: "t", value: null }
}]);
var shaderMaterial;
try {
shaderMaterial = new THREE.ShaderMaterial({
lights: true,
uniforms: uniforms,
vertexShader: BlendMapVertexShader,
fragmentShader: BlendMapFragmentShader
});
} catch (e) {
alert("Error 'CreateGround' : GPU Shader couldn't …
Run Code Online (Sandbox Code Playgroud) shader vertex-shader fragment-shader three.js shadow-mapping
刚刚在ThreeJS中对r67-r69进行了更新,最终在将其位置引用到一个(相同)向量时遇到了问题.
在我做这个工作之前:
var vector = new THREE.Vector3(50, 50, 50);
_Mesh1.position = vector;
_Mesh2.position = vector;
Run Code Online (Sandbox Code Playgroud)
这使我有可能在移动其中一个网格时移动另一个网格.
在r69中,位置矢量保持不变(也就是0,0,0),这意味着每当我模拟另一个时,我必须为每个网格手动设置X,Y和Z坐标.
我在这里错过了一些改变吗?或者我应该怎么做才能解决这个问题?
好吧,我很难找到问题,因为它在本地工作,但在发布后,结果很简单:
错误代码:403禁止.服务器拒绝指定的统一资源定位符(URL).联系服务器管理员.(12202)
代码:
[RoutePrefix("api/v1/project")]
public class ProjectController : BaseApiController
{
[HttpGet]
public HttpResponseMessage GetProjects()
{
HttpResponseMessage resp = new HttpResponseMessage(HttpStatusCode.OK);
if(User.Identity.IsAuthenticated)
{
var model = new ModelFactory().CreateProjects();
resp = Request.CreateResponse(HttpStatusCode.OK, model);
}
return resp;
}
}
Run Code Online (Sandbox Code Playgroud)
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// all actions under /project routes require authentication
config.Routes.MapHttpRoute(
name: "ProjectApi",
routeTemplate: "api/v1/{controller}/{action}/{apikey}",
defaults: new { apikey = RouteParameter.Optional },
constraints: new { controller = "project" },
handler: new BasicAuthHandler(config));
// all routes …
Run Code Online (Sandbox Code Playgroud)