我正在尝试使用XP上的OpenGL进行混合渲染到DIB部分。我正在尝试将源和目标颜色组件相乘,如:
public abstract class BaseDatabaseConfig {
protected Map<String, Object> jpaPropertiesMap() {
HashMap<String, Object> properties = new HashMap<>();
properties.put("hibernate.transaction.jta.platform","com.atomikos.icatch.jta.hibernate4.AtomikosPlatform");
properties.put("javax.persistence.transactionType","JTA");
properties.put("hibernate.search.autoregister_listeners","false");
properties.put("hibernate.connection.handling_mode","DELAYED_ACQUISITION_AND_RELEASE_AFTER_TRANSACTION");
properties.put("hibernate.connection.release_mode","on_close");
properties.put("hibernate.cache.use_second_level_cache","false");
return properties;
}
protected JpaVendorAdapter db2JpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setDatabase(Database.INFORMIX);
hibernateJpaVendorAdapter.setShowSql(false);
hibernateJpaVendorAdapter.setGenerateDdl(false);
return hibernateJpaVendorAdapter;
}
protected JpaVendorAdapter db1JpaVendorAdapter() {
HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
hibernateJpaVendorAdapter.setDatabasePlatform("org.hibernate.dialect.Oracle10gDialect");
hibernateJpaVendorAdapter.setShowSql(false);
hibernateJpaVendorAdapter.setGenerateDdl(false);
return hibernateJpaVendorAdapter;
}
然而,它无法绘制混合图像。通过改变我要求的混合类型,我可以将它画成好像没有混合,或者根本不画画。但它拒绝融合。
以下是我正在使用的OpenGL版本的详细信息:
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR, GL_ZERO);
我知道我只能使用DIB部分进行“通用”(软件)渲染,但我没想到混合会失败。我已经搜索了关于在这种情况下是否支持混合的确认,但无济于事。
非常感谢任何帮助。
答案 0 :(得分:1)
glBlendFunc(GL_DST_COLOR, GL_ZERO);
^^^ oh?
Transparency, Translucency, and Blending:
15.060 我想使用混合但无法使目标alpha工作。我可以混合或创建没有目标alpha的透明效果吗?
许多OpenGL设备不支持目标alpha。 特别是,Microsoft的OpenGL 1.1软件渲染库不支持它。 OpenGL规范并不需要它。
此外:
如果您正在进行混合并且需要目标alpha,则需要确保渲染目标有一个。渲染到Framebuffer对象时,这很容易确保。但是使用Default Framebuffer,它取决于您如何创建OpenGL上下文。
例如,如果您使用的是GLUT,则需要确保将
GLUT_ALPHA
传递给glutInitDisplayMode
函数。
答案 1 :(得分:0)
好吧我犯了一个愚蠢的错误:我误读了我自己的脚本代码并最终在错误的渲染过程中应用了纹理。 OpenGL不应该受到责备,并且混合了DOES。