小编log*_*ain的帖子

File.listFiles返回null时检索基础错误

根据File.listFiles的方法javadoc

如果此抽象路径名不表示目录,或者发生I/O错误,则返回null.

我知道我正在使用目录,但收到了null结果,因此必须出现I/O错误.我对错误是什么非常感兴趣.

null返回这样的结果时,如何检索错误消息/代码?

java file-io

15
推荐指数
2
解决办法
7556
查看次数

ASP.NET Ajax CalendarExtender不会更新SelectedDate值

出于某种原因,正在处理的ASP.NET站点上的任何CalendarExtender都不会更新.我已经检查了所有明显的位置(例如AutoPostBack和AutoEventHandler).问题是,当我从日历中选择一个日期并将其发布到表单时,正在更新正在扩展的TextBox,但日历扩展程序的日期根本没有被更新(例如,SelectedDate仍然与之前相同) .我搜索了任何可能的解决方案,但没有一个有效.

这是代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master"
    AutoEventWireup="true" CodeBehind="ThePage.aspx.cs" Inherits="ThePage" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:TextBox runat="server" ID="txtBlah" />
<asp:CalendarExtender ID="txtBlahExtender" runat="server" TargetControlID="txtBlah" Format="MMMM d, yyyy" />
<asp:Button runat="server" ID="btnSubmit" CausesValidation="false" />
Run Code Online (Sandbox Code Playgroud)

和代码隐藏:

public partial class ThePage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                txtBlahExtender.SelectedDate = DateTime.Today.AddDays(4);
            }
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
         //do postback actions        
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我的代码达到"do postback actions"时,txtBlahExtender.SelectedDate总是DateTime.Today.AddDays(4).它根本没有记录变化.

有任何想法吗?

谢谢,洛根史密斯

(是否可以对问题进行格式化?)

asp.net ajax postback calendarextender

9
推荐指数
1
解决办法
2万
查看次数

漫反射光/阴影

我刚刚在我的引擎中实现了一个灯光系统.在下面的屏幕截图中,您可以看到正在运行的灯光(黄色方块):

1 考虑到在照亮场景的光线之上,它还实现了一个FOV,它会遮挡你视野之外的任何东西.这就是为什么阴影的左侧部分看起来如此偏离.

正如你所看到的那样,光线的阴影非常"坚硬",因为它们甚至不能照亮其直接范围之外的一个区域.为了使灯光看起来更好,我对它们应用了一个过滤器,它几乎限制了要照明的范围,并且在该限制范围内略微照亮了该区域:

2

在大黄色圆圈中,即使没有直射光照射,您也可以看到该区域是如何照亮的.

然而,该解决方案带来一些不希望的副作用.正如您在下面的屏幕截图中看到的那样,即使没有任何光到达某个区域,如果它太靠近光源,它也会被点亮:

10

我想知道是否有任何方法可以通过正确使用着色器来实现我想要做的事情.我遇到的主要问题来自于我如何绘制这些阴影.

1)首先,我采用光线范围内的结构.

此时,我正在使用顶点,因为它们定义了阴影投射项的区域: 3

2)然后,对于这些对象中的每一个,我计算它们单独投射的阴影: 4

五

6 他们施放的阴影由CPU完成,通过计算身体每个顶点的投影.

3)然后GPU将这些形状绘制到纹理中以构成最终阴影:

7

我发现的问题是,制作这种弥散阴影效果,我需要最后的阴影.如果我在步骤2)中计算漫射阴影,则在固体B和C之间会出现光隙.

但是如果我在第3步中消除了阴影,我就不再拥有顶点信息,因为我拥有的所有信息都是在一个最终纹理中加起来的3个局部纹理.

那么,无论如何要实现这一目标吗?我的第一个想法是将变量传递给碎片器以计算有多少光进入暗区,但由于我将在最终阴影上处理此信息,因为它没有顶点信息,我完全迷失了什么我应该用这个做法.

我对这种方法可能完全错了,因为我对着色器的经验非常有限.

这是我现在拥有的一个例子,以及我想要的东西:我拥有的东西:光线半径的明亮照明(导致光线穿过墙壁. 7

我想要的是:距离光线结束的距离越远,阴影越强烈. 7

opengl lighting glsl shadow game-engine

9
推荐指数
1
解决办法
650
查看次数

用于检测何时按住按钮的Android

我需要能够判断用户何时按下按钮以及用户何时离开.这与onClickListener和onLongClickListener不同.我该怎么做这样的事情?

例如,我按下一个启动计时器的按钮.(伪代码)

if ButtonIsBeingPressed
{
chronometer start(); //and keep going
}
else chronometer stop();
//or on release or something
}
Run Code Online (Sandbox Code Playgroud)

android onclick button onlongclicklistener

7
推荐指数
1
解决办法
6934
查看次数

我什么时候必须将两种颜色相加?

我已经实现了一个具有以下属性的简单着色器: - 材质(环境,漫反射和高光) - 定义对象颜色的基色 - 浅色

片段着色器:(vColor是对象的基色)

  vec3 lightDir = normalize(vec3($uLightPos.xyz - vPosInEye.xyz));
  vec3 viewerPos = normalize(vec3(-vPosInEye.xyz));
  vec3 specularReflection = normalize(-reflect(lightDir, vNormal));

  float diffFactor = max(dot(vNormal, lightDir), 0.0);
  vec4 Id = $uIdColor * diffFactor * vColor ;
  vec4 Ia = $uIaColor * vColor;
  vec4 Is = clamp($uIsColor * pow(max(dot(specularReflection, viewerPos), 0.0), $uIsShininess), 0.0, 1.0);

  gl_FragColor = (Id + Ia + Is) + $uLightColor;
Run Code Online (Sandbox Code Playgroud)

如您所见,我将材质的环境颜色乘以对象的基色.这似乎是正确的,因为我想将这些颜色混合在一起.

在"Open GL ES 2.0编程指南"一书中,这是以相同的方式实现的.在最后一行,我添加了灯光的颜色.
我试图先增加颜色然后我得到奇怪的结果:黄色*蓝色导致黑色(这是明确的,因为黄色是(1.0,1.0,0)和蓝色(0.0,0.0,1.0)所以我用+替换*这似乎产生了正确的颜色(白色).

所以我的问题是:当我必须将两种颜色相乘以及何时添加它们时,是否有经验法则?

opengl shader lighting

6
推荐指数
1
解决办法
1074
查看次数

C++ OpenGL中定位光和直射光的区别?

我刚刚从 videotutorialsrock.com 上做了一个关于 C++ OpenGL 照明的教程。我了解环境光,但不了解定位光和直射光之间的区别,因为两者的想法和代码看起来非常相似。这是我的定位光代码:

//Add positioned light
GLfloat lightColor0[] = {.6, .6, .6, 1};
GLfloat lightPos0[] = {4, 0, 8, 1};
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor0);
glLightfv(GL_LIGHT0, GL_POSITION, lightPos0);
Run Code Online (Sandbox Code Playgroud)

对于定向光:

//Add direct light
GLfloat lightColor1[] = {.5, .2, .2, 1};
GLfloat lightPos1[] = {-1, .5, .5, 0};
glLightfv(GL_LIGHT1, GL_DIFFUSE, lightColor1);
glLightfv(GL_LIGHT1, GL_POSITION, lightPos1);
Run Code Online (Sandbox Code Playgroud)

有人能解释一下吗?

c++ opengl 3d lighting

1
推荐指数
1
解决办法
2062
查看次数

delphi和opengl:光与立方体一起旋转

问题是由翻译写的,所以我不知道它是正确的.我开始学习Opengl并遇到了以下问题:当我旋转立方体时,光线也会旋转.我试图在每一帧中改变光的坐标,但它没有帮助.告诉我:出了什么问题.如果没有麻烦,有可能会导致修订版本.

码:

unit MainUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes,     Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,dglOpenGL,dglut;

type
  TFMainForm = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
  private

  procedure SetupGL;
  procedure uzglLightEnable;
  procedure IdleHandler(Sender : TObject; var Done : Boolean);

  public

  procedure Render;

  end;

var
  FMainForm: TFMainForm;
  dc:hdc;
  hrc:hglrc;
  XRot,YRot,ZRot:Single;

  LightPos:TGLArrayf4;
  BlueArray:TGLArrayf4;
  GreenArray:TGLArrayf4;
  myTex: glUint;

  FrontNormal: TGLvectorf3=(0,0,1);
  BackNormal: TGLvectorf3 =(0,0,-1);
  LeftNormal: TGLvectorf3 =(-1,0,0);
  RightNormal: TGLvectorf3=(1,0,0);
  UpNormal: TGLvectorf3   =(0,1,0);
  DownNormal: TGLvectorf3 =(0,-1,0);

  FrontDownLeft :TGLvectorf3 …
Run Code Online (Sandbox Code Playgroud)

delphi opengl lighting rotation

0
推荐指数
1
解决办法
845
查看次数