以前写Vrml封包都是嵌入的Blx控件,因为Blx控件没有Logo水印,比较好办.只是本身的效果和多边形等支持上都不是很理想.昨天同事要一个Exe封包封一下场景文件给别人演示一下现在的效果,我就尝试了一下嵌入BS控件封装.本来以为很容易.后来才发现BS很BT,不知道是不是它们做了特别的限制.
嵌入窗口中,测试运行程序马上就自己结束.编译成Exe后就正常,也就是说无法一边调试一边查看,只能编一些,编译成Exe看一下.估计买了Sdk会有这方面的禁止程序结束的方法吧.
独立编译后到没有装过Bs的机器测试,提示缺少控件.我晕.难道还要附属的Dll?查了半天,发现Bs的ocx必须还要附带d3dx9_26.dll,j2k-codec.dll才能支持.晕.
不缺少控件后又出现一个新的问题,就是首次运行竟然提示是否接受授权条款.Regsvr32也会出现这个提示.只在未装过Bs控件的机器上首次提示一次.点”是”后就不会再提示了.回家就开始跟踪注册表,先用SSM跟踪软件动作,结果竟然没提示操作注册表了.架虚拟PC,反复的做注册表镜像,最终才搞定.如下写注册表即可避免授权提示.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{4B6E3013-6E45-11D0-9309-0020AFE05CC8}InprocServer32]
@="BS控件的所在路径"
昨晚又3点多才去睡的,往一个Vrml场景中添加水效果来着.结果照预先看到的范例效果差了一点.不过比原来简单的半透Gif做的水效果强多了.支持物体的反射折射.抓几张图来,图的效果不好.实时浏览的效果会比静止的图片更真实一点.有点小Bug,场景过大时候,晃动视角,会感觉水在”荡漾”,这个不知道如何X掉.